Files
tech-log-frontend/tests/e2e/tech-log-studio-workflow.spec.ts
T

72 lines
2.4 KiB
TypeScript

import { FIXTURE_IDS } from "../../src/features/tech-log/adapters/mock/fixtures.ts";
import { expect, test } from "../support/browser/strict-browser-test.ts";
test("validates, previews, publishes, and unpublishes one Studio working copy", async ({
page,
}) => {
await page.goto(
`/studio/documents/${FIXTURE_IDS.stateNonceReference}/validation`,
);
await expect(
page.getByText("현재 저장 버전의 검증을 통과했습니다"),
).toBeVisible();
await page.getByRole("link", { name: "Public Preview 만들기" }).click();
await page
.getByRole("button", { name: "Public Preview 만들기" })
.click();
await expect(
page.getByText("현재 저장 버전의 Public Preview입니다."),
).toBeVisible();
await page.getByRole("link", { name: "게시 준비로 이동" }).click();
await page.getByRole("button", { name: "게시" }).click();
await expect(page).toHaveURL(
/\/studio\/publications\/[0-9a-f-]+\/preview$/,
);
await expect(
page.getByRole("heading", {
level: 1,
name: "Authorization Code Flow에서 state와 nonce의 경계",
}),
).toBeVisible();
await page.getByRole("link", { name: "게시 기록으로 돌아가기" }).click();
await page
.getByRole("button", {
name: /Authorization Code Flow에서 state와 nonce의 경계 게시 취소/,
})
.click();
await expect(
page.getByRole("dialog", { name: "게시를 취소할까요?" }),
).toContainText("작업본과 이전 Snapshot은 보존됩니다.");
await page.getByRole("button", { name: "게시 취소 확인" }).click();
await expect(page.getByRole("status")).toContainText(
"게시를 취소했습니다.",
);
});
test("renders an immutable historical snapshot and Studio-local missing event", async ({
page,
}) => {
await page.goto(
`/studio/publications/${FIXTURE_IDS.fetchPublishedEvent}/preview`,
);
await expect(
page.getByText(/반환된 20건 뒤에서 전체 컬렉션이 로드되는 과정/),
).toBeVisible();
await expect(
page.getByText("게시 후 본문 측정값을 보완한 저장본입니다."),
).toHaveCount(0);
await page.goto(
"/studio/publications/99999999-9999-4999-8999-999999999999/preview",
);
await expect(
page.getByRole("heading", { name: "게시 기록을 찾을 수 없습니다" }),
).toBeVisible();
await expect(
page.getByRole("navigation", { name: "Studio 주 탐색" }),
).toBeVisible();
});