docs: connect the array builder workflow

This commit is contained in:
2026-08-28 22:21:32 +09:00
parent 0f9b4f8942
commit 3714146df9
9 changed files with 214 additions and 27 deletions
+6 -3
View File
@@ -36,7 +36,7 @@ async function digestHex(blob) {
return [...new Uint8Array(digest)].map((value) => value.toString(16).padStart(2, "0")).join("");
}
test("시작 화면과 Dataset Builder가 작업 우선순위 및 390px 레이아웃을 유지한다", async () => {
test("시작 화면이 세 앱 진입점과 390px 레이아웃을 유지한다", async () => {
const landingFrame = document.createElement("iframe");
landingFrame.src = "/";
landingFrame.style.cssText = "position:fixed;left:-20000px;top:0;width:390px;height:900px;border:0";
@@ -49,9 +49,12 @@ test("시작 화면과 Dataset Builder가 작업 우선순위 및 390px 레이
try {
const landingDocument = landingFrame.contentDocument;
const launchers = [...landingDocument.querySelectorAll(".launcher-card")];
assertEqual(launchers.length, 2, "landing exposes only two primary tasks");
assertEqual(launchers.length, 3, "landing exposes three primary tasks");
assert(launchers[0].textContent.includes("Acoustic Camera"), "analysis is the first landing task");
assert(launchers[1].textContent.includes("Dataset Builder"), "scene authoring is the second landing task");
const launcherPaths = new Set(launchers.map((launcher) => launcher.getAttribute("href")));
assert(launcherPaths.has("/apps/dataset-builder/"), "landing links to Dataset Builder");
assert(launcherPaths.has("/apps/array-builder/"), "landing links to Array Builder");
assert(launcherPaths.has("/apps/acoustic-camera/"), "landing links to Acoustic Camera");
assert(!landingDocument.querySelector(".workflow-disclosure").open, "file workflow starts collapsed");
assert(!landingDocument.querySelector('a[href="/docs/execution-plan.md"]'), "developer plan is absent from landing");
assert(
+17
View File
@@ -35,6 +35,23 @@ const LAYOUT_CASES = [
homePanelWidth: 320,
homeGridTracks: 1,
},
{
label: "Array Builder",
path: "/apps/array-builder/",
panelSide: "start",
storageKey: "micarrsim.array-builder.control-panel-width",
defaultPanelWidth: 420,
layoutId: "array-builder-layout",
panelId: "array-builder-controls",
workspaceId: "array-builder-workspace",
handleId: "array-builder-split-handle",
canvasSelector: ".array-canvas-card",
representativeSelectors: ["#array-name", "#generate-preset-button"],
adaptiveGridSelector: ".preset-grid",
defaultGridTracks: 2,
homePanelWidth: 360,
homeGridTracks: 1,
},
];
let mountSequence = 0;