Files
orca/src/main/codex/codex-session-source-home.test.ts
T

73 lines
2.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
resolveHostCodexSessionSourceHome,
resolveWslCodexSessionSourceHome
} from './codex-session-source-home'
describe('resolveHostCodexSessionSourceHome', () => {
it('returns undefined when no override is configured', () => {
expect(resolveHostCodexSessionSourceHome({})).toBeUndefined()
expect(resolveHostCodexSessionSourceHome({ codexSessionSourceHome: {} })).toBeUndefined()
})
it('returns undefined for blank/whitespace overrides so the default is kept', () => {
expect(
resolveHostCodexSessionSourceHome({ codexSessionSourceHome: { host: ' ' } })
).toBeUndefined()
})
it('returns the trimmed host override path', () => {
expect(
resolveHostCodexSessionSourceHome({ codexSessionSourceHome: { host: ' /custom/codex ' } })
).toBe('/custom/codex')
})
})
describe('resolveWslCodexSessionSourceHome', () => {
it('returns undefined when no per-distro override exists', () => {
expect(resolveWslCodexSessionSourceHome({}, 'Ubuntu')).toBeUndefined()
expect(
resolveWslCodexSessionSourceHome(
{ codexSessionSourceHome: { wsl: { Debian: '/home/me/.codex' } } },
'Ubuntu'
)
).toBeUndefined()
})
it('resolves a per-distro override for the matching distro', () => {
expect(
resolveWslCodexSessionSourceHome(
{ codexSessionSourceHome: { wsl: { Ubuntu: '/home/me/.config/codex' } } },
'Ubuntu'
)
).toBe('/home/me/.config/codex')
})
it('matches distro names case-insensitively, mirroring WSL', () => {
expect(
resolveWslCodexSessionSourceHome(
{ codexSessionSourceHome: { wsl: { Ubuntu: '/home/me/.config/codex' } } },
'ubuntu'
)
).toBe('/home/me/.config/codex')
})
it('ignores blank per-distro overrides so the default is kept', () => {
expect(
resolveWslCodexSessionSourceHome(
{ codexSessionSourceHome: { wsl: { Ubuntu: ' ' } } },
'Ubuntu'
)
).toBeUndefined()
})
it('does not leak the host override into WSL resolution', () => {
expect(
resolveWslCodexSessionSourceHome(
{ codexSessionSourceHome: { host: '/custom/codex' } },
'Ubuntu'
)
).toBeUndefined()
})
})