2026-08-14 18:44:56 +08:00
|
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
|
import { AVAILABLE_BUNDLES } from '../src/bundles.ts'
|
|
|
|
|
import { isRequiredPlugin, isUserToggleable } from '../src/required.ts'
|
|
|
|
|
|
|
|
|
|
describe('isRequiredPlugin (blacklist/whitelist, default-open)', () => {
|
|
|
|
|
it('marks the blacklist core as required', () => {
|
2026-08-14 20:45:00 +08:00
|
|
|
for (const name of ['@deepseek-ai/cordis-plugin-loader', '@deepseek-ai/dsh-session', 'cordis:required', 'cordis:include']) {
|
2026-08-14 18:44:56 +08:00
|
|
|
expect(isRequiredPlugin(name)).toBe(true)
|
|
|
|
|
expect(isUserToggleable(name)).toBe(false)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
2026-08-14 20:45:00 +08:00
|
|
|
it('whitelists the currently-disabled set as toggleable', () => {
|
|
|
|
|
for (const name of [
|
|
|
|
|
'@deepseek-ai/dsh-tool-pwsh', '@deepseek-ai/dsh-skill-badge',
|
|
|
|
|
'@deepseek-ai/dsh-session-telemetry-otel', '@deepseek-ai/dsh-pwsh-sandbox',
|
|
|
|
|
]) {
|
2026-08-14 18:44:56 +08:00
|
|
|
expect(isRequiredPlugin(name)).toBe(false)
|
|
|
|
|
expect(isUserToggleable(name)).toBe(true)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
2026-08-14 20:45:00 +08:00
|
|
|
it('defaults unknown modules to toggleable', () => {
|
|
|
|
|
for (const name of ['@fixture/never', 'cordis:user-toggleable']) {
|
2026-08-14 18:44:56 +08:00
|
|
|
expect(isRequiredPlugin(name)).toBe(false)
|
|
|
|
|
expect(isUserToggleable(name)).toBe(true)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
describe('AVAILABLE_BUNDLES', () => {
|
2026-08-14 20:45:00 +08:00
|
|
|
it('is empty: no optional bundles ship as offline-installable yet', () => {
|
|
|
|
|
expect(AVAILABLE_BUNDLES).toEqual([])
|
2026-08-14 18:44:56 +08:00
|
|
|
})
|
|
|
|
|
})
|