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 "选择工作区目录": - dialog "选择工作区目录":
- heading "选择工作区目录" [level=2] - heading "选择工作区目录" [level=2]
- button "主目录" - navigation:
- img - button "主目录"
- button "browse-golden" - img
- button "browse-golden"
- button "编辑路径" - button "编辑路径"
- list: - list:
- listitem: - listitem:
- img - button "alpha":
- text: alpha - img
- img - text: alpha
- img
- listitem: - listitem:
- img - button "beta":
- text: beta - img
- img - text: beta
- img
- button "新建文件夹": - button "新建文件夹":
- img - img
- text: 新建文件夹 - 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') const staged = join(scaffold.workspaceCwd, 'browse-golden')
await mkdir(join(staged, 'alpha'), { recursive: true }) await mkdir(join(staged, 'alpha'), { recursive: true })
await mkdir(join(staged, 'beta'), { 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 realHome = process.env.HOME
const realUserProfile = process.env.USERPROFILE
process.env.HOME = scaffold.workspaceCwd process.env.HOME = scaffold.workspaceCwd
process.env.USERPROFILE = scaffold.workspaceCwd
try { try {
await page.getByRole('button', { name: 'Create workspace' }).click() await page.getByRole('button', { name: 'Create workspace' }).click()
await page.getByRole('menuitem', { name: 'Open local folder…' }).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.getByRole('button', { name: '取消' }).click()
await dialog.waitFor({ state: 'hidden', timeout: 10_000 }) await dialog.waitFor({ state: 'hidden', timeout: 10_000 })
} finally { } 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([]) expect(tripwire.pageErrors).toEqual([])
}, 60_000) }, 60_000)