• Will Chen's avatar
    setup flow e2e test (#2028) · abe4861c
    Will Chen 提交于
    <!-- CURSOR_SUMMARY -->
    > [!NOTE]
    > **Medium Risk**
    > Adds a new IPC entrypoint and changes Node.js status resolution logic
    (even though gated to `E2E_TEST_BUILD`), which could affect runtime
    behavior if the flag/channel is misused. The rest is E2E-only test
    additions/refactors.
    > 
    > **Overview**
    > Adds Playwright E2E coverage for the initial *Setup Dyad* flow,
    including Node.js install UX states, provider setup navigation, and
    verifying the setup banner disappears after configuring an AI provider.
    > 
    > Introduces a **test-only IPC** (`test:set-node-mock`) to
    deterministically mock Node.js installed/not-installed status in E2E
    builds, with a new `PageObject.setNodeMock()` helper and preload
    allowlisting. Refactors Node.js status handling to centralize Node
    download URL selection via `getNodeDownloadUrl()`.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    5dd01b9e95375ff4a39d00b9ec9ecb40685d89a0. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Adds Playwright E2E coverage for the setup flow and a test-only IPC to
    mock Node.js install status, making the flow fully testable and
    deterministic. Also refactors Node download URL selection for clarity.
    
    - **New Features**
      - Added setup_flow.spec.ts to verify:
        - Banner states when Node is installed.
        - Node install flow with “Continue… I installed Node.js”.
        - AI provider navigation and banner dismissal after configuration.
    - Introduced test-only IPC channel test:set-node-mock (allowlisted in
    preload) gated by E2E_TEST_BUILD=true; added PageObject.setNodeMock()
    helper.
    - Refactored node_handlers to use getNodeDownloadUrl() and return mocked
    versions when enabled.
    
    - **Migration**
      - Run E2E with E2E_TEST_BUILD=true to enable the mock IPC.
    
    <sup>Written for commit 5dd01b9e95375ff4a39d00b9ec9ecb40685d89a0.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2028">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    abe4861c
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxfmtrc.json 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CLA.md 正在载入提交数据...
CLAUDE.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
lint-staged.config.js 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...
windowsSign.ts 正在载入提交数据...