• 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
名称
最后提交
最后更新
..
__tests__ 正在载入提交数据...
app 正在载入提交数据...
atoms 正在载入提交数据...
client_logic 正在载入提交数据...
components 正在载入提交数据...
constants 正在载入提交数据...
contexts 正在载入提交数据...
db 正在载入提交数据...
hooks 正在载入提交数据...
ipc 正在载入提交数据...
lib 正在载入提交数据...
main 正在载入提交数据...
neon_admin 正在载入提交数据...
pages 正在载入提交数据...
paths 正在载入提交数据...
pro 正在载入提交数据...
prompts 正在载入提交数据...
routes 正在载入提交数据...
shared 正在载入提交数据...
store 正在载入提交数据...
styles 正在载入提交数据...
supabase_admin 正在载入提交数据...
utils 正在载入提交数据...
backup_manager.ts 正在载入提交数据...
main.ts 正在载入提交数据...
preload.ts 正在载入提交数据...
renderer.tsx 正在载入提交数据...
router.ts 正在载入提交数据...