feat(communication): add chat reactions emojis and images
This commit is contained in:
@@ -4,6 +4,7 @@ import { randomUUID } from "node:crypto"
|
||||
import Fastify from "fastify"
|
||||
import jwt from "jsonwebtoken"
|
||||
import cookie from "@fastify/cookie"
|
||||
import sharp from "sharp"
|
||||
import authPlugin from "../src/plugins/auth"
|
||||
import { secrets } from "../src/utils/secrets"
|
||||
import { collaborationRoutes, collaborationGuestRoutes } from "../src/routes/collaboration"
|
||||
@@ -57,7 +58,19 @@ test("HTTP guest sessions never authorize normal APIs or other subrooms", { skip
|
||||
assert.equal(sent.statusCode, 200, sent.body)
|
||||
const stored = await fixture.pool.query("SELECT p.kind FROM collaboration_messages m JOIN collaboration_principals p ON p.id=m.principal_id WHERE m.id=$1", [sent.json().id])
|
||||
assert.equal(stored.rows[0].kind, "guest")
|
||||
const image = { name: "Gastbild.png", dataUrl: `data:image/png;base64,${(await sharp({ create: { width: 2, height: 2, channels: 3, background: 'green' } }).png().toBuffer()).toString('base64')}` }
|
||||
const photo = await app.inject({ method: "POST", url: `/guest/api/rooms/${roomId}/messages`, headers: guestHeaders,
|
||||
payload: { clientId: randomUUID(), image } })
|
||||
assert.equal(photo.statusCode, 200, photo.body)
|
||||
assert.equal(photo.json().image.dataUrl, undefined)
|
||||
const imagePath = `/guest/api/rooms/${roomId}/image?messageId=${photo.json().id}`
|
||||
assert.equal((await app.inject({ url: imagePath, headers: guestHeaders })).statusCode, 200)
|
||||
const reactionPath = `/guest/api/rooms/${roomId}/reactions`
|
||||
assert.equal((await app.inject({ method: "PUT", url: reactionPath, headers: guestHeaders,
|
||||
payload: { messageId: photo.json().id, emoji: '👍', active: true } })).statusCode, 200)
|
||||
assert.equal((await app.inject({ url: `${reactionPath}?ids=${photo.json().id}`, headers: guestHeaders })).json().reactions[photo.json().id][0].own, true)
|
||||
assert.equal((await app.inject({ method: "POST", url: "/guest/api/logout", headers: guestHeaders })).statusCode, 200)
|
||||
assert.equal((await app.inject({ url: "/guest/api/rooms", headers: guestHeaders })).statusCode, 401)
|
||||
assert.equal((await app.inject({ url: imagePath, headers: guestHeaders })).statusCode, 401)
|
||||
} finally { secrets.JWT_SECRET = previousSecret; await app.close(); await fixture.close() }
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user