diff --git a/scripts/verify_creation_browser.mjs b/scripts/verify_creation_browser.mjs index 0b1575d8..54abfecb 100644 --- a/scripts/verify_creation_browser.mjs +++ b/scripts/verify_creation_browser.mjs @@ -27,6 +27,10 @@ assert.equal( ); const browser = await launchBrowser(); const page = await browser.newPage({ viewport: { width: 1500, height: 1000 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/scripts/verify_selection_panels_browser.mjs b/scripts/verify_selection_panels_browser.mjs index 8427e472..1d621029 100644 --- a/scripts/verify_selection_panels_browser.mjs +++ b/scripts/verify_selection_panels_browser.mjs @@ -14,6 +14,10 @@ const browser = await chromium.launch({ args: ["--no-sandbox"], }); const page = await browser.newPage({ viewport: { width: 1600, height: 1100 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/assistant_sessions.mjs b/tests/browser/assistant_sessions.mjs index 374e6e83..bfe84bce 100644 --- a/tests/browser/assistant_sessions.mjs +++ b/tests/browser/assistant_sessions.mjs @@ -34,6 +34,10 @@ try { const page = await browser.newPage({ viewport: { width: 1440, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/canvas_crop.mjs b/tests/browser/canvas_crop.mjs index 9e9fb2fe..94e501f4 100644 --- a/tests/browser/canvas_crop.mjs +++ b/tests/browser/canvas_crop.mjs @@ -43,6 +43,10 @@ const browser = await chromium.launch({ args: ["--no-sandbox"], }); const page = await browser.newPage({ viewport: { width: 1600, height: 1000 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/canvas_keyboard.mjs b/tests/browser/canvas_keyboard.mjs index 834197a8..46fcbf87 100644 --- a/tests/browser/canvas_keyboard.mjs +++ b/tests/browser/canvas_keyboard.mjs @@ -21,6 +21,10 @@ assert.ok(created.ok); const browser = await chromium.launch({ executablePath: process.env.CHROMIUM_PATH }); try { const page = await browser.newPage({ viewport: { width: 1400, height: 900 } }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); await page.goto(`${base}/ai-tool/ai-canvas/${id}`); const nodes = page.locator(".react-flow__node"); const selected = page.locator(".react-flow__node.selected"); diff --git a/tests/browser/canvas_layers.mjs b/tests/browser/canvas_layers.mjs index a6d67588..bece5649 100644 --- a/tests/browser/canvas_layers.mjs +++ b/tests/browser/canvas_layers.mjs @@ -57,6 +57,10 @@ try { page = await browser.newPage({ viewport: { width: 1500, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); page.on("response", async (response) => { if (response.url().endsWith("/commands")) { diff --git a/tests/browser/canvas_notifications.mjs b/tests/browser/canvas_notifications.mjs index abc2c3c2..04c752aa 100644 --- a/tests/browser/canvas_notifications.mjs +++ b/tests/browser/canvas_notifications.mjs @@ -38,6 +38,10 @@ try { const page = await browser.newPage({ viewport: { width: 1500, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/canvas_selection_history.mjs b/tests/browser/canvas_selection_history.mjs index c5401197..ec32d7ad 100644 --- a/tests/browser/canvas_selection_history.mjs +++ b/tests/browser/canvas_selection_history.mjs @@ -14,6 +14,10 @@ try { const page = await browser.newPage({ viewport: { width: 1600, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const headers = { "X-OpenDirector-Request": "1" }; const errors = []; diff --git a/tests/browser/canvas_wheel.mjs b/tests/browser/canvas_wheel.mjs index 5653e55f..8edec02b 100644 --- a/tests/browser/canvas_wheel.mjs +++ b/tests/browser/canvas_wheel.mjs @@ -39,6 +39,10 @@ try { const page = await browser.newPage({ viewport: { width: 1600, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/composer_duration.mjs b/tests/browser/composer_duration.mjs index 3a3926eb..00e5b08a 100644 --- a/tests/browser/composer_duration.mjs +++ b/tests/browser/composer_duration.mjs @@ -80,6 +80,10 @@ try { const page = await browser.newPage({ viewport: { width: 1600, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/composer_expansion.mjs b/tests/browser/composer_expansion.mjs index a6d77f1e..3c679b65 100644 --- a/tests/browser/composer_expansion.mjs +++ b/tests/browser/composer_expansion.mjs @@ -40,6 +40,10 @@ try { const page = await browser.newPage({ viewport: { width: 1600, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/context_menu_dismissal.mjs b/tests/browser/context_menu_dismissal.mjs index 83b81723..52362bf5 100644 --- a/tests/browser/context_menu_dismissal.mjs +++ b/tests/browser/context_menu_dismissal.mjs @@ -4,6 +4,10 @@ import { launchBrowser } from "./engine.mjs"; const base = process.env.CREATION_WEB_URL ?? "http://127.0.0.1:5179"; const browser = await launchBrowser(); const page = await browser.newPage({ viewport: { width: 1500, height: 1000 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/created_node_focus.mjs b/tests/browser/created_node_focus.mjs index b9aa9760..b4ec6e51 100644 --- a/tests/browser/created_node_focus.mjs +++ b/tests/browser/created_node_focus.mjs @@ -12,6 +12,10 @@ async function call(path, body) { assert.equal((await call("/api/creation-test-health")).isolated, true); const browser = await launchBrowser(); const page = await browser.newPage({ viewport: { width: 1600, height: 1000 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); const projectId = crypto.randomUUID(); try { diff --git a/tests/browser/creation_history.mjs b/tests/browser/creation_history.mjs index c94696c9..66263e19 100644 --- a/tests/browser/creation_history.mjs +++ b/tests/browser/creation_history.mjs @@ -14,6 +14,10 @@ try { const page = await browser.newPage({ viewport: { width: 1500, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const headers = { "X-OpenDirector-Request": "1" }; const errors = [], diff --git a/tests/browser/cross_canvas_paste.mjs b/tests/browser/cross_canvas_paste.mjs index 6ee02e3e..348bf3ef 100644 --- a/tests/browser/cross_canvas_paste.mjs +++ b/tests/browser/cross_canvas_paste.mjs @@ -34,6 +34,10 @@ const browser = await launchBrowser(); const errors = []; try { const page = await browser.newPage({ viewport: { width: 1500, height: 1000 } }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); page.on("pageerror", (error) => errors.push(error.message)); const saved = () => page.getByText("已保存到本机", { exact: true }).waitFor(); diff --git a/tests/browser/default_entry.mjs b/tests/browser/default_entry.mjs index cc6b5343..44b7238d 100644 --- a/tests/browser/default_entry.mjs +++ b/tests/browser/default_entry.mjs @@ -49,6 +49,10 @@ const browser = await chromium.launch({ args: ["--no-sandbox"], }); const page = await browser.newPage({ viewport: { width: 1600, height: 1000 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(20000); const errors = [], legacy = []; diff --git a/tests/browser/generation_parameters.mjs b/tests/browser/generation_parameters.mjs index 3568a8c1..d78dd166 100644 --- a/tests/browser/generation_parameters.mjs +++ b/tests/browser/generation_parameters.mjs @@ -77,6 +77,10 @@ try { const page = await browser.newPage({ viewport: { width: 1600, height: 1100 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); page.on("pageerror", (e) => errors.push(e.message)); await page.goto(`${base}/ai-tool/ai-canvas/${id}`); diff --git a/tests/browser/jiuwenswarm_picker.mjs b/tests/browser/jiuwenswarm_picker.mjs index 026cc1de..3cc0c00a 100644 --- a/tests/browser/jiuwenswarm_picker.mjs +++ b/tests/browser/jiuwenswarm_picker.mjs @@ -14,6 +14,10 @@ try { const page = await browser.newPage({ viewport: { width: 1500, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(20000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/minimax_h3.mjs b/tests/browser/minimax_h3.mjs index b9dcf343..361a51da 100644 --- a/tests/browser/minimax_h3.mjs +++ b/tests/browser/minimax_h3.mjs @@ -19,6 +19,10 @@ async function call(path, body) { assert.equal((await call("/api/creation-test-health")).isolated, true); const browser = await launchBrowser(); const page = await browser.newPage({ viewport: { width: 1600, height: 1100 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); try { const model = await call("/api/model-configs", { diff --git a/tests/browser/multi_selection_references.mjs b/tests/browser/multi_selection_references.mjs index 73dbda09..955a6fc0 100644 --- a/tests/browser/multi_selection_references.mjs +++ b/tests/browser/multi_selection_references.mjs @@ -14,6 +14,10 @@ try { const page = await browser.newPage({ viewport: { width: 1800, height: 1100 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/paste_undo.mjs b/tests/browser/paste_undo.mjs index b681be43..1fcbc67c 100644 --- a/tests/browser/paste_undo.mjs +++ b/tests/browser/paste_undo.mjs @@ -19,6 +19,10 @@ assert.ok(response.ok); const browser = await chromium.launch({ executablePath: process.env.CHROMIUM_PATH }); try { const page = await browser.newPage({ viewport: { width: 1400, height: 900 } }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); await page.goto(`${base}/ai-tool/ai-canvas/${id}`); await page.getByText("已保存到本机", { exact: true }).waitFor(); const png = await page.evaluate(() => { diff --git a/tests/browser/project_list_overflow.mjs b/tests/browser/project_list_overflow.mjs index f44347a7..111cc38b 100644 --- a/tests/browser/project_list_overflow.mjs +++ b/tests/browser/project_list_overflow.mjs @@ -16,6 +16,10 @@ await call(`/api/creation/projects/${id}/commands`, { projectId: id, commandId: const browser = await launchBrowser(); try { const page = await browser.newPage({ viewport: { width: 420, height: 760 } }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); // Twenty legacy projects each add one warning line, as in a long-lived workspace. await page.route(/\/api\/creation\/projects(\?.*)?$/, async (route) => { diff --git a/tests/browser/reference_picker.mjs b/tests/browser/reference_picker.mjs index 692d55bc..91b7838b 100644 --- a/tests/browser/reference_picker.mjs +++ b/tests/browser/reference_picker.mjs @@ -123,6 +123,10 @@ try { const page = await browser.newPage({ viewport: { width: 1600, height: 1000 }, }); + // Skip the first-run model setup welcome; it covers the canvas. + await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), + ); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message)); diff --git a/tests/browser/structured_editors.mjs b/tests/browser/structured_editors.mjs index 6f875f1e..038d06cf 100644 --- a/tests/browser/structured_editors.mjs +++ b/tests/browser/structured_editors.mjs @@ -12,6 +12,10 @@ const browser = await chromium.launch({ args: ["--no-sandbox", "--enable-unsafe-swiftshader"], }); const page = await browser.newPage({ viewport: { width: 1700, height: 1100 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(20000); const errors = []; page.on("pageerror", (e) => errors.push(e.message)); diff --git a/tests/browser/tool_drafts.mjs b/tests/browser/tool_drafts.mjs index 49c3f06e..15be600a 100644 --- a/tests/browser/tool_drafts.mjs +++ b/tests/browser/tool_drafts.mjs @@ -45,6 +45,10 @@ const browser = await chromium.launch({ args: ["--no-sandbox"], }); const page = await browser.newPage({ viewport: { width: 1600, height: 1100 } }); +// Skip the first-run model setup welcome; it covers the canvas. +await page.addInitScript(() => + localStorage.setItem("opendirector.modelSetup.v1", "dismissed"), +); page.setDefaultTimeout(15000); const errors = []; page.on("pageerror", (error) => errors.push(error.message));