72 lines
2.4 KiB
TypeScript
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();
|
|
});
|