Files
orca/tests/e2e/electron-home-isolation.spec.ts
mirror 34fa2cd5ca
Skill update round trip / roundtrip (false, macos-latest, copy, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (false, macos-latest, symlink, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (false, ubuntu-latest, copy, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (false, ubuntu-latest, symlink, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (false, ubuntu-latest, symlink, latest) (push) Canceled after 0s
Skill update round trip / roundtrip (false, windows-latest, copy, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (false, windows-latest, symlink, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (true, macos-latest, copy, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (true, macos-latest, symlink, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (true, ubuntu-latest, copy, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (true, ubuntu-latest, symlink, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (true, windows-latest, copy, 1.5.17) (push) Canceled after 0s
Skill update round trip / roundtrip (true, windows-latest, symlink, 1.5.17) (push) Canceled after 0s
source snapshot 2026-09-02
2026-09-02 02:03:16 +08:00

35 lines
1.3 KiB
TypeScript

import type { ElectronApplication } from '@stablyai/playwright-test'
import path from 'node:path'
import { expect, test } from './helpers/orca-app'
test.use({ seedTestRepo: false })
async function readElectronHomeState(electronApp: ElectronApplication) {
return electronApp.evaluate(({ app }) => {
const nodeOs = process.getBuiltinModule('node:os')
return {
appHome: app.getPath('home'),
nodeHome: nodeOs.homedir(),
userDataDir: process.env.ORCA_E2E_USER_DATA_DIR,
home: process.env.HOME,
userProfile: process.env.USERPROFILE,
codexHome: process.env.CODEX_HOME,
orcaCodexHome: process.env.ORCA_CODEX_HOME
}
})
}
// Codex always routes to the real home now, so this single case covers both the
// HOME boundary and that real-home routing lands inside the disposable profile.
test('isolates Electron and Codex from the developer home by default', async ({ electronApp }) => {
const state = await readElectronHomeState(electronApp)
const expectedHome = path.join(state.userDataDir!, 'home')
expect(state.appHome).toBe(expectedHome)
expect(state.nodeHome).toBe(expectedHome)
expect(state.home).toBe(expectedHome)
expect(state.userProfile).toBe(expectedHome)
expect(state.codexHome).toBeUndefined()
expect(state.orcaCodexHome).toBeUndefined()
})