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.
This commit is contained in:
creatixchu
2026-07-29 01:57:19 +08:00
parent 15a4b512e9
commit 459128dfb6
2 changed files with 20 additions and 10 deletions

View File

@@ -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: 新建文件夹

View File

@@ -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)