feat(POSTV1-ASSET-ALL-16): 在编辑器接入全部复杂素材
Dada P0-A isolated Windows CI / validate-and-package (push) Waiting to run
Dada P0-A isolated Windows CI / validate-and-package (push) Waiting to run
This commit is contained in:
@@ -76,24 +76,28 @@ async function routeEditor(page: Page, projectId: string, backend: Backend) {
|
||||
backend.recent = [item, ...backend.recent.filter((entry) => entry.asset_id !== item.asset_id)];
|
||||
await route.fulfill({ body: JSON.stringify({ status: "recorded" }), contentType: "application/json", status: 200 });
|
||||
});
|
||||
await page.route("**/api/v1/assets/public/p0a-complex-v1/*", (route) => route.fulfill({ body: fontBytes, contentType: "font/ttf", status: 200 }));
|
||||
const previewPng = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=", "base64");
|
||||
await page.route("**/api/v1/assets/public/p0a-complex-v1/*", (route) => {
|
||||
const preview = new URL(route.request().url()).pathname.includes("TEXT-PREVIEW-");
|
||||
return route.fulfill(preview ? { body: previewPng, contentType: "image/png", status: 200 } : { body: fontBytes, contentType: "font/ttf", status: 200 });
|
||||
});
|
||||
}
|
||||
|
||||
test("TDD-WP4-TXT-003 exposes the frozen catalog, display-name search and account recent use", async ({ page }) => {
|
||||
test("TDD-WP4-TXT-003 exposes the complete catalog, display-name search and account recent use", async ({ page }) => {
|
||||
const projectId = uuid(730);
|
||||
const backend: Backend = { canvas: emptyCanvas(), recent: [], saves: 0, version: 2 };
|
||||
await routeEditor(page, projectId, backend);
|
||||
await page.goto(`${webUrl}/app/projects/${projectId}/editor`);
|
||||
await page.getByRole("button", { name: "文字模板", exact: true }).click();
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(32);
|
||||
for (const [label, count] of [["花字", 8], ["标题", 8], ["标签", 8], ["简约", 8]] as const) {
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(332);
|
||||
for (const [label, count] of [["花字", 145], ["标题", 119], ["标签", 51], ["简约", 17]] as const) {
|
||||
await page.getByRole("button", { name: label, exact: true }).click();
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(count);
|
||||
}
|
||||
await page.getByRole("button", { name: "全部", exact: true }).click();
|
||||
const search = page.getByPlaceholder("搜索文字模板显示名称");
|
||||
await search.fill("生活");
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(5);
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(9);
|
||||
await search.fill("FLOWER001");
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(0);
|
||||
await search.fill("");
|
||||
@@ -101,7 +105,7 @@ test("TDD-WP4-TXT-003 exposes the frozen catalog, display-name search and accoun
|
||||
const flowerTemplate = page.getByRole("button", { name: /FLOWER001 春日计划/ });
|
||||
await flowerTemplate.hover();
|
||||
await expect(flowerTemplate).toHaveCSS("background-color", "rgb(255, 255, 214)");
|
||||
await expect(flowerTemplate.locator(".editor-template-mark")).toHaveCSS("transform", "matrix(1.03, 0, 0, 1.03, 0, 0)");
|
||||
await expect(flowerTemplate.locator(".editor-template-preview")).toHaveCSS("transform", "matrix(1.03, 0, 0, 1.03, 0, 0)");
|
||||
await flowerTemplate.click();
|
||||
await expect(page.getByText("对象 1 / 50")).toBeVisible();
|
||||
await expect.poll(() => backend.recent).toEqual([{ asset_id: "FLOWER001", asset_kind: "text_template", resource_version: "p0a-complex-v1" }]);
|
||||
@@ -110,8 +114,8 @@ test("TDD-WP4-TXT-003 exposes the frozen catalog, display-name search and accoun
|
||||
await expect(page.getByLabel("最近使用文字模板").getByText("FLOWER001", { exact: true })).toBeVisible();
|
||||
await page.getByRole("button", { name: "普通贴纸", exact: true }).click();
|
||||
expect(page.getByPlaceholder("搜索普通贴纸")).toHaveCount(0);
|
||||
writeEvidence("TDD-WP4-TXT-003-catalog-search-recent", "catalog.json", { categories: { flower: 8, simple: 8, tag: 8, title: 8 }, count: 32, first: "FLOWER001", last: "SIMPLE008" });
|
||||
writeEvidence("TDD-WP4-TXT-003-catalog-search-recent", "response.json", { public_count: 32, recent: backend.recent, unavailable_is_disabled: true });
|
||||
writeEvidence("TDD-WP4-TXT-003-catalog-search-recent", "catalog.json", { categories: { flower: 145, simple: 17, tag: 51, title: 119 }, count: 332, first: "FLOWER001", last: "SIMPLE017" });
|
||||
writeEvidence("TDD-WP4-TXT-003-catalog-search-recent", "response.json", { public_count: 332, recent: backend.recent, unavailable_count: 0 });
|
||||
writeEvidence("TDD-WP4-TXT-003-catalog-search-recent", "db-diff.json", { account_user_id: userId, recent: backend.recent, search_did_not_write: true });
|
||||
});
|
||||
|
||||
@@ -228,7 +232,7 @@ test("POSTV1-07 keeps the canvas anchored when the text template panel opens", a
|
||||
if (!before) throw new Error("Canvas geometry is unavailable before opening text templates.");
|
||||
|
||||
await page.getByRole("button", { name: "文字模板", exact: true }).click();
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(32);
|
||||
await expect(page.locator(".editor-template-grid button")).toHaveCount(332);
|
||||
const after = await stage.boundingBox();
|
||||
if (!after) throw new Error("Canvas geometry is unavailable after opening text templates.");
|
||||
const assetsPanelScroll = await page.getByLabel("素材与底图来源").evaluate((panel) => ({
|
||||
|
||||
Reference in New Issue
Block a user