Просмотр исходного кода

fix(web): root USERPROFILE for the browser golden; re-record it against fresh bundles

- homedir() reads USERPROFILE on Windows: the golden's home collapse now
  sets and restores both variables, keeping the artifact machine-independent
  on every platform (ds-review-bot).
- The committed golden is re-recorded against freshly built bundles: the
  earlier recording ran with a stale dist that predated the navigation
  landmark and the button-in-listitem markup, which is why refreshes had
  looked byte-identical.
creatixchu 1 месяц назад
Родитель
Сommit
459128dfb6

+ 12 - 9
apps/web/tests/snapshots/workspace-management/directory-browser.expected.md

@@ -1,18 +1,21 @@
 - dialog "选择工作区目录":
   - heading "选择工作区目录" [level=2]
-  - button "主目录"
-  - img
-  - button "browse-golden"
+  - navigation:
+    - button "主目录"
+    - img
+    - button "browse-golden"
   - button "编辑路径"
   - list:
     - listitem:
-      - img
-      - text: alpha
-      - img
+      - button "alpha":
+        - img
+        - text: alpha
+        - img
     - listitem:
-      - img
-      - text: beta
-      - img
+      - button "beta":
+        - img
+        - text: beta
+        - img
   - button "新建文件夹":
     - img
     - text: 新建文件夹

+ 8 - 1
apps/web/tests/workspace-management.e2e.ts

@@ -354,8 +354,12 @@ describe('web e2e: workspace management (create / rename / flat view / hover car
     const staged = join(scaffold.workspaceCwd, 'browse-golden')
     await mkdir(join(staged, 'alpha'), { recursive: true })
     await mkdir(join(staged, 'beta'), { recursive: true })
+    // homedir() reads HOME on POSIX and USERPROFILE on Windows: root both
+    // at the scaffold cwd so the golden's ancestry collapses everywhere.
     const realHome = process.env.HOME
+    const realUserProfile = process.env.USERPROFILE
     process.env.HOME = scaffold.workspaceCwd
+    process.env.USERPROFILE = scaffold.workspaceCwd
     try {
       await page.getByRole('button', { name: 'Create workspace' }).click()
       await page.getByRole('menuitem', { name: 'Open local folder…' }).click()
@@ -370,7 +374,10 @@ describe('web e2e: workspace management (create / rename / flat view / hover car
       await dialog.getByRole('button', { name: '取消' }).click()
       await dialog.waitFor({ state: 'hidden', timeout: 10_000 })
     } finally {
-      process.env.HOME = realHome
+      if (realHome === undefined) delete process.env.HOME
+      else process.env.HOME = realHome
+      if (realUserProfile === undefined) delete process.env.USERPROFILE
+      else process.env.USERPROFILE = realUserProfile
     }
     expect(tripwire.pageErrors).toEqual([])
   }, 60_000)