| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /** Installed-product isolation uses resolved package identities and runtime edges. */
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'
- import { tmpdir } from 'node:os'
- import { join } from 'node:path'
- import { afterEach, describe, expect, it } from 'vitest'
- import { verifyInstalledProductIsolation } from './installed-product-isolation.ts'
- const roots: string[] = []
- const experimental = '@deepseek-ai/dsh-experimental-example'
- function fixture(): string {
- const root = mkdtempSync(join(tmpdir(), 'dsh-installed-isolation-'))
- roots.push(root)
- return root
- }
- function writePackage(root: string, key: string, manifest: Record<string, unknown>): string {
- const directory = join(root, 'node_modules', key)
- mkdirSync(directory, { recursive: true })
- writeFileSync(join(directory, 'package.json'), `${JSON.stringify({ name: key, ...manifest })}\n`)
- return directory
- }
- afterEach(() => {
- for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true })
- })
- describe('installed default-product isolation', () => {
- it('ignores development dependencies and unrelated installed experimental packages', () => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', {
- dependencies: { core: '1.0.0' },
- devDependencies: { [experimental]: '1.0.0' },
- })
- writePackage(root, 'core', { peerDependencies: { '@deepseek-ai/dsh': '1.0.0' } })
- writePackage(root, experimental, {})
- expect(verifyInstalledProductIsolation(entry)).toBe(2)
- })
- it.each(['dependencies', 'optionalDependencies', 'peerDependencies'])(
- 'rejects a transitive experimental %s',
- (section) => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', { dependencies: { thirdParty: '1.0.0' } })
- writePackage(root, 'thirdParty', { [section]: { [experimental]: '1.0.0' } })
- expect(() => verifyInstalledProductIsolation(entry)).toThrow(
- `@deepseek-ai/dsh -> thirdParty -> ${experimental}`,
- )
- },
- )
- it('skips the entry package\'s optional bundles, which must be installed, and still rejects other experimental edges', () => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', { dependencies: { core: '1.0.0', [experimental]: '1.0.0' } })
- writePackage(root, 'core', {})
- writePackage(root, experimental, { dependencies: { '@deepseek-ai/dsh-experimental-inner': '1.0.0' } })
- expect(verifyInstalledProductIsolation(entry, [experimental])).toBe(2)
- writePackage(root, 'core', { dependencies: { [experimental]: '1.0.0' } })
- expect(() => verifyInstalledProductIsolation(entry, [experimental])).toThrow(`core -> ${experimental}`)
- const missing = writePackage(root, '@deepseek-ai/dsh-missing', { dependencies: { absent: '1.0.0' } })
- expect(() => verifyInstalledProductIsolation(missing, ['absent'])).toThrow('optional bundle is missing: @deepseek-ai/dsh-missing -> absent')
- })
- it('rejects experimental identities hidden behind an installed alias', () => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', { dependencies: { safeName: 'file:../prototype' } })
- writePackage(root, 'safeName', { name: experimental })
- expect(() => verifyInstalledProductIsolation(entry)).toThrow(experimental)
- })
- it('rejects experimental npm aliases even when an optional package is omitted', () => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', {
- optionalDependencies: { safeName: `npm:${experimental}@1.0.0` },
- })
- expect(() => verifyInstalledProductIsolation(entry)).toThrow(experimental)
- })
- it('follows nested installations rather than an unrelated hoisted package', () => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', { dependencies: { core: '1.0.0' } })
- writePackage(root, 'core', {})
- writePackage(entry, 'core', { dependencies: { [experimental]: '1.0.0' } })
- expect(() => verifyInstalledProductIsolation(entry)).toThrow(experimental)
- })
- it('permits missing optional packages and optional peers but rejects missing dependencies', () => {
- const root = fixture()
- const entry = writePackage(root, '@deepseek-ai/dsh', {
- dependencies: { optional: '1.0.0' },
- optionalDependencies: { optional: '1.0.0' },
- peerDependencies: { peer: '1.0.0' },
- peerDependenciesMeta: { peer: { optional: true } },
- })
- expect(verifyInstalledProductIsolation(entry)).toBe(1)
- writePackage(root, '@deepseek-ai/dsh', { dependencies: { missing: '1.0.0' } })
- expect(() => verifyInstalledProductIsolation(entry)).toThrow('dependency is missing')
- })
- })
|