test: mark presentation focal surfaces

This commit is contained in:
lda
2026-07-12 20:54:21 +07:00 Verified
parent 6ee1318a05
commit 39a438cc19
10 changed files with 29 additions and 9 deletions
@@ -13,6 +13,9 @@ describe("OpeningThesisScene", () => {
const opening = screen.getByRole("region", { name: /thesis opening/i });
expect(opening).toHaveAttribute("data-opening-focus", "title");
expect(opening).toHaveAttribute("data-presentation-surface", "editorial");
expect(screen.getByRole("heading", { name: "An AI Agent for Workspace Workflows" }).parentElement)
.toHaveAttribute("data-visual-role", "title-hero");
expect(screen.getByRole("heading", { name: /Design and Implementation of lda\.chat/i })).toBeInTheDocument();
expect(screen.getByRole("heading", { name: "An AI Agent for Workspace Workflows" })).toBeInTheDocument();
const roles = screen.getByRole("group", { name: "AI agent roles" });
@@ -17,6 +17,7 @@ export const OpeningThesisScene = ({ scene, beat }: OpeningThesisSceneProps) =>
className="opening-thesis-scene"
aria-label="thesis opening"
data-opening-focus={contributionBeat ? "contribution" : "title"}
data-presentation-surface="editorial"
>
<StageCaption eyebrow="Title" title={title}>
<p>{beat.caption}</p>
@@ -26,7 +27,7 @@ export const OpeningThesisScene = ({ scene, beat }: OpeningThesisSceneProps) =>
data-opening-beat={beat.id}
data-opening-focus={contributionBeat ? "contribution" : "title"}
>
<header className="opening-thesis__statement">
<header className="opening-thesis__statement" data-visual-role="title-hero">
<p>Product goal</p>
<h2>An AI Agent for Workspace Workflows</h2>
</header>
@@ -16,6 +16,10 @@ describe("ProblemLoopScene", () => {
expect(scene).toHaveAttribute("data-problem-focus", "tool-loop");
expect(scene).toHaveAttribute("data-support-state", "quiet");
const transcript = screen.getByRole("log", { name: /one-off assistant transcript/i });
expect(screen.getByRole("article", { name: /one-off chat and tool loop/i }))
.toHaveAttribute("data-visual-role", "conversation");
expect(screen.getByRole("group", { name: /durable workflow blueprint/i }))
.toHaveAttribute("data-visual-role", "automation");
expect(transcript).toHaveClass("assistant-operator-thread");
expect(within(transcript).getByText("Can you finish this workspace task?")).toBeInTheDocument();
const toolButtons = within(transcript).getAllByRole("button", { name: /fetchData|transformPayload|writeOutput/i });
@@ -68,6 +68,7 @@ export const ProblemLoopScene = ({ scene, beat }: ProblemLoopSceneProps) => {
className="problem-chat-card"
data-problem-active={automationBeat ? "false" : "true"}
data-problem-role="tool-loop"
data-visual-role="conversation"
aria-label="one-off chat and tool loop"
>
<header className="problem-artifact-header">
@@ -89,6 +90,7 @@ export const ProblemLoopScene = ({ scene, beat }: ProblemLoopSceneProps) => {
aria-label="durable workflow blueprint"
data-blueprint-active={automationBeat ? "true" : "false"}
data-problem-role="workflow-blueprint"
data-visual-role="automation"
>
<header className="problem-artifact-header">
<span>Reusable</span>