mirror of
https://github.com/stablyai/orca.git
synced 2026-10-01 16:02:03 +00:00
* fix(opencode): use cross-platform data directory * fix(opencode): honor in-memory database override * fix(opencode): harden database discovery coverage * test(opencode): reproduce Windows session discovery --------- Co-authored-by: OrcaWin <alpha-eng@stably.ai> Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { join } from 'node:path'
|
|
import { afterEach, describe, expect, it } from 'vitest'
|
|
import {
|
|
resolveOpenCodeDataDirectory,
|
|
resolveOpenCodeStorageDirectory
|
|
} from './opencode-data-directory'
|
|
|
|
function stubPlatform(platform: NodeJS.Platform): void {
|
|
Object.defineProperty(process, 'platform', { value: platform, configurable: true })
|
|
}
|
|
|
|
describe('resolveOpenCodeDataDirectory', () => {
|
|
const realPlatform = process.platform
|
|
|
|
afterEach(() => {
|
|
stubPlatform(realPlatform)
|
|
})
|
|
|
|
it('uses XDG_DATA_HOME when it is configured', () => {
|
|
expect(resolveOpenCodeDataDirectory({ XDG_DATA_HOME: ' /custom/data ' }, '/users/test')).toBe(
|
|
join('/custom/data', 'opencode')
|
|
)
|
|
})
|
|
|
|
it.each<NodeJS.Platform>(['win32', 'darwin', 'linux'])(
|
|
'uses the OpenCode cross-platform default instead of app-data directories on %s',
|
|
(platform) => {
|
|
stubPlatform(platform)
|
|
const environment = {
|
|
LOCALAPPDATA: 'C:\\Users\\test\\AppData\\Local',
|
|
APPDATA: 'C:\\Users\\test\\AppData\\Roaming',
|
|
OPENCODE_CONFIG_DIR: 'C:\\Users\\test\\.config\\opencode'
|
|
}
|
|
|
|
expect(resolveOpenCodeDataDirectory(environment, '/users/test')).toBe(
|
|
join('/users/test', '.local', 'share', 'opencode')
|
|
)
|
|
}
|
|
)
|
|
|
|
it('derives legacy storage from the same data directory', () => {
|
|
expect(resolveOpenCodeStorageDirectory({}, '/users/test')).toBe(
|
|
join('/users/test', '.local', 'share', 'opencode', 'storage')
|
|
)
|
|
})
|
|
})
|