import { createUser, formWithFile, get, PNG, put, test } from "../helpers.ts"; import type { SelfUser } from "../../../shared/user.ts"; import { assertEquals, assertFalse } from "@std/assert"; test("avatars: upload, serve, and 404 when there is none", async () => { const user = await createUser(); assertEquals((await get(`/api/users/${user.id}/avatar`)).status, 404); assertEquals( (await get(`/api/users/${crypto.randomUUID()}/avatar`)).status, 404, ); const res = await put("/api/me/avatar", { auth: user.auth, form: formWithFile(PNG), }); assertEquals(res.status, 200); assertEquals(res.data.avatarMime, "image/png"); assertFalse("passwordHash" in res.data); const served = await get(`/api/users/${user.id}/avatar`); assertEquals(served.status, 200); assertEquals(served.bytes, PNG); assertEquals( (await put("/api/me/avatar", { auth: user.auth, form: formWithFile(new Uint8Array([1, 2, 3])), })).status, 400, ); });