Files
hapi/shared/src/runnerCapabilities.test.ts
T
AnanovoandGitHub 5d7e13fc5d fix(hub,cli): keep inactive file previews available through runner (#1727)
* fix(hub,cli): keep inactive file previews available through runner

* fix(cli): bound runner workspace file reads

* fix(cli): constrain runner git fallback pathspecs

* fix(cli): allow dot-prefixed workspace paths
2026-10-28 12:07:18 +08:00

53 lines
2.0 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
CURRENT_MACHINE_CAPABILITIES,
MACHINE_CAPABILITIES,
REQUIRED_MACHINE_CAPABILITIES,
cliBinaryUpdatedOnDisk,
isMachineCapabilitySkewed,
missingRequiredCapabilities,
} from './runnerCapabilities'
describe('runnerCapabilities', () => {
it('requires machine RPCs that session creation hard-depends on', () => {
expect(REQUIRED_MACHINE_CAPABILITIES).toContain(MACHINE_CAPABILITIES.AgentAvailability)
expect(REQUIRED_MACHINE_CAPABILITIES).toContain(MACHINE_CAPABILITIES.CursorChatStoreStatus)
expect(CURRENT_MACHINE_CAPABILITIES).toEqual(expect.arrayContaining([
...REQUIRED_MACHINE_CAPABILITIES,
MACHINE_CAPABILITIES.WorkspaceFileAccess,
]))
})
it('treats missing/empty advertised capabilities as skewed', () => {
expect(isMachineCapabilitySkewed(undefined)).toBe(true)
expect(isMachineCapabilitySkewed(null)).toBe(true)
expect(isMachineCapabilitySkewed([])).toBe(true)
expect(missingRequiredCapabilities([])).toEqual([
MACHINE_CAPABILITIES.AgentAvailability,
MACHINE_CAPABILITIES.CursorChatStoreStatus,
])
})
it('is not skewed when required capabilities are advertised', () => {
expect(isMachineCapabilitySkewed([...CURRENT_MACHINE_CAPABILITIES])).toBe(false)
expect(missingRequiredCapabilities([
MACHINE_CAPABILITIES.AgentAvailability,
MACHINE_CAPABILITIES.CursorChatStoreStatus,
'other-cap',
])).toEqual([])
})
it('detects on-disk CLI binary updates via mtime drift', () => {
expect(cliBinaryUpdatedOnDisk({
startedCliMtimeMs: 100,
installedCliMtimeMs: 200,
})).toBe(true)
expect(cliBinaryUpdatedOnDisk({
startedCliMtimeMs: 100,
installedCliMtimeMs: 100,
})).toBe(false)
expect(cliBinaryUpdatedOnDisk({})).toBe(false)
expect(cliBinaryUpdatedOnDisk(null)).toBe(false)
})
})