Update admin theme/layout and refresh README details.
Align the project baseline with the latest admin interface styling and layout structure while documenting setup and usage updates in README.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { API_URL, registerVerifyLogin, uniqueEmail } from "../helpers/api";
|
||||
|
||||
const tinyPng = Buffer.from(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==",
|
||||
"base64"
|
||||
);
|
||||
|
||||
test.describe("§15.7 scenario 10: Avatar validation", () => {
|
||||
test("rejects svg, oversize and accepts valid png", async ({ request }) => {
|
||||
const session = await registerVerifyLogin(request, uniqueEmail("e2e-avatar"));
|
||||
const headers = { Authorization: `Bearer ${session.accessToken}` };
|
||||
|
||||
const svg = await request.post(`${API_URL}/api/v1/users/me/avatar`, {
|
||||
headers,
|
||||
multipart: {
|
||||
file: {
|
||||
name: "avatar.svg",
|
||||
mimeType: "image/svg+xml",
|
||||
buffer: Buffer.from("<svg xmlns='http://www.w3.org/2000/svg'></svg>")
|
||||
}
|
||||
}
|
||||
});
|
||||
expect(svg.status()).toBe(400);
|
||||
|
||||
const oversize = await request.post(`${API_URL}/api/v1/users/me/avatar`, {
|
||||
headers,
|
||||
multipart: {
|
||||
file: {
|
||||
name: "big.png",
|
||||
mimeType: "image/png",
|
||||
buffer: Buffer.concat([tinyPng, Buffer.alloc(2 * 1024 * 1024 + 1)])
|
||||
}
|
||||
}
|
||||
});
|
||||
expect(oversize.status()).toBe(400);
|
||||
expect((await oversize.json()).detail).toBe("FILE_TOO_LARGE");
|
||||
|
||||
const valid = await request.post(`${API_URL}/api/v1/users/me/avatar`, {
|
||||
headers,
|
||||
multipart: {
|
||||
file: {
|
||||
name: "avatar.png",
|
||||
mimeType: "image/png",
|
||||
buffer: tinyPng
|
||||
}
|
||||
}
|
||||
});
|
||||
expect(valid.ok()).toBeTruthy();
|
||||
expect((await valid.json()).profile.avatar_url).toContain("/api/v1/media/files/avatars/");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user