fix: structure narrow conclusion flow
This commit is contained in:
@@ -79,14 +79,15 @@ describe("ConclusionScene", () => {
|
||||
|
||||
it("attaches evidence vertically beneath the typed substrate rather than extending the contribution line", () => {
|
||||
render(<ConclusionScene scene={scene} beat={beat("future")} />);
|
||||
const executionNodes = [...screen.getByLabelText("contribution flow").children]
|
||||
.filter((node) => node.getAttribute("data-evidence-attachment") !== "vertical");
|
||||
expect(executionNodes.map((node) => node.getAttribute("data-node-id"))).toEqual([
|
||||
const flow = screen.getByLabelText("contribution flow");
|
||||
expect([...flow.children].map((unit) => unit.getAttribute("data-flow-unit"))).toEqual([
|
||||
"planner",
|
||||
"substrate",
|
||||
"substrate-stack",
|
||||
"runtime",
|
||||
]);
|
||||
expect(screen.getByText("Persisted, inspectable evidence").closest("[data-node-id='evidence']"))
|
||||
expect(flow.querySelector('[data-flow-unit="substrate-stack"] [data-node-id="substrate"]'))
|
||||
.toHaveTextContent("Typed workflow substrate");
|
||||
expect(flow.querySelector('[data-flow-unit="substrate-stack"] [data-node-id="evidence"]'))
|
||||
.toHaveAttribute("data-evidence-attachment", "vertical");
|
||||
});
|
||||
|
||||
|
||||
@@ -35,25 +35,44 @@ export const ConclusionScene: FC<ConclusionSceneProps> = ({ scene, beat }) => {
|
||||
</StageCaption>
|
||||
<section className="conclusion-map" aria-label="thesis contribution boundary" data-conclusion-beat={beatId}>
|
||||
<div className="conclusion-map__flow" aria-label="contribution flow">
|
||||
{contributionNodes.map((node, index) => (
|
||||
<div className="conclusion-map__flow-unit conclusion-map__flow-unit--planner" data-flow-unit="planner">
|
||||
<div
|
||||
className={`conclusion-map__node conclusion-map__node--${node.id}`}
|
||||
data-node-id={node.id}
|
||||
data-emphasis={node.id === "substrate" ? "substrate" : "neutral"}
|
||||
key={node.id}
|
||||
className="conclusion-map__node conclusion-map__node--planner"
|
||||
data-node-id={contributionNodes[0].id}
|
||||
data-emphasis="neutral"
|
||||
>
|
||||
<span className="conclusion-map__node-index">0{index + 1}</span>
|
||||
<strong>{node.label}</strong>
|
||||
<span className="conclusion-map__node-index">01</span>
|
||||
<strong>{contributionNodes[0].label}</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div className="conclusion-map__flow-unit conclusion-map__flow-unit--substrate-stack" data-flow-unit="substrate-stack">
|
||||
<div
|
||||
className="conclusion-map__node conclusion-map__node--substrate"
|
||||
data-node-id={contributionNodes[1].id}
|
||||
data-emphasis="substrate"
|
||||
>
|
||||
<span className="conclusion-map__node-index">02</span>
|
||||
<strong>{contributionNodes[1].label}</strong>
|
||||
</div>
|
||||
<div
|
||||
className={`conclusion-map__node conclusion-map__node--${evidenceNode.id}`}
|
||||
data-evidence-attachment="vertical"
|
||||
data-node-id={evidenceNode.id}
|
||||
>
|
||||
<span className="conclusion-map__node-index">04</span>
|
||||
<strong>{evidenceNode.label}</strong>
|
||||
<small>saved traces and receipts</small>
|
||||
</div>
|
||||
</div>
|
||||
<div className="conclusion-map__flow-unit conclusion-map__flow-unit--runtime" data-flow-unit="runtime">
|
||||
<div
|
||||
className="conclusion-map__node conclusion-map__node--runtime"
|
||||
data-node-id={contributionNodes[2].id}
|
||||
data-emphasis="neutral"
|
||||
>
|
||||
<span className="conclusion-map__node-index">03</span>
|
||||
<strong>{contributionNodes[2].label}</strong>
|
||||
</div>
|
||||
))}
|
||||
<div
|
||||
className={`conclusion-map__node conclusion-map__node--${evidenceNode.id}`}
|
||||
data-evidence-attachment="vertical"
|
||||
data-node-id={evidenceNode.id}
|
||||
>
|
||||
<span className="conclusion-map__node-index">04</span>
|
||||
<strong>{evidenceNode.label}</strong>
|
||||
<small>saved traces and receipts</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user