Files
deepseek-harness/packages/boot/app-boot/tests/bundle-platform.spec.ts
T

29 lines
1.9 KiB
TypeScript

/** Bundle declarations admit the Host operating system independently of browser clients. */
import { expect, it } from 'vitest'
import { assertBundlePlatform, UnsupportedBundlePlatformError } from '../src/bundle-platform.ts'
it('admits WSL independently of ordinary Linux and native Windows', () => {
const wsl = { env: {}, osRelease: '6.6.87.2-microsoft-standard-WSL2' }
const linux = { env: {}, osRelease: '6.8.0-generic' }
expect(() =>{ assertBundlePlatform(['win32', 'wsl'], 'linux', wsl) }).not.toThrow()
expect(() =>{ assertBundlePlatform(['win32', 'wsl'], 'linux', linux) }).toThrow(UnsupportedBundlePlatformError)
expect(() =>{ assertBundlePlatform(['wsl'], 'win32', wsl) }).toThrow(UnsupportedBundlePlatformError)
expect(() =>{ assertBundlePlatform(['linux'], 'linux', wsl) }).not.toThrow()
expect(() =>{ assertBundlePlatform(['win32'], 'linux', wsl) }).toThrow(UnsupportedBundlePlatformError)
})
it.each(['darwin', 'win32', 'linux'])('allows undeclared platforms and an explicit %s Host', (platform) => {
expect(() => { assertBundlePlatform(undefined, platform) }).not.toThrow()
expect(() => { assertBundlePlatform([platform], platform) }).not.toThrow()
expect(() => { assertBundlePlatform(['darwin', 'win32', 'linux'], platform) }).not.toThrow()
})
it.each(['win32', 'linux'])('rejects macOS-only bundles on %s Hosts', (platform) => {
expect(() => { assertBundlePlatform(['darwin'], platform) }).toThrow(UnsupportedBundlePlatformError)
expect(() => { assertBundlePlatform(['darwin'], platform) }).toThrow(`the DSH Host is running ${platform}`)
})
it.each([null, true, 'darwin', [], [1], [''], ['Darwin'], [' darwin'], ['macos'], ['darwin', 'linxu'], ['darwin', false]].map(platforms => ({ platforms })))('rejects malformed platform metadata $platforms', ({ platforms }) => {
expect(() => { assertBundlePlatform(platforms, 'darwin') }).toThrow('dsh.bundle.platforms must be a nonempty list')
})