import { readFileSync } from 'node:fs'; import { resolve } from 'node:path'; import { describe, expect, it } from 'vitest'; interface PackageManifest { scripts?: Record; } function loadPackageScripts(): Record { const raw = readFileSync(resolve(process.cwd(), 'package.json'), 'utf8'); const manifest = JSON.parse(raw) as PackageManifest; return manifest.scripts ?? {}; } describe('phase0 baseline script wiring', () => { it('keeps rolling script TAG override semantics', () => { const scripts = loadPackageScripts(); const rolling = scripts['audit:phase0-baseline:live:refresh:drift:rolling']; expect(rolling).toBeDefined(); expect(rolling).toContain('TAG=${TAG:-$(date -u +%F-%H%M%S)}'); expect(rolling).toContain('--tag "$TAG"'); expect(rolling).toContain('--report-tag "$TAG"'); }); it('keeps rolling prune script on shared overridable TAG', () => { const scripts = loadPackageScripts(); const rollingPrune = scripts['audit:phase0-baseline:live:refresh:drift:rolling:prune']; expect(rollingPrune).toBeDefined(); expect(rollingPrune).toContain('TAG=${TAG:-$(date -u +%F-%H%M%S)}'); expect(rollingPrune).not.toContain('TAG=$(date -u +%F-%H%M%S)'); expect(rollingPrune).toContain('pnpm audit:phase0-baseline:live:refresh:drift:rolling'); expect(rollingPrune).toContain('--report-tag "$TAG"'); }); it('keeps default drift thresholds for reaction match/skip deltas', () => { const scripts = loadPackageScripts(); const drift = scripts['audit:phase0-baseline:live:drift']; const rolling = scripts['audit:phase0-baseline:live:refresh:drift:rolling']; expect(drift).toBeDefined(); expect(drift).toContain('--max-reaction-match-rate-drop-pp 50'); expect(drift).toContain('--max-reaction-skip-rate-increase-pp 50'); expect(rolling).toBeDefined(); expect(rolling).toContain('--max-reaction-match-rate-drop-pp 50'); expect(rolling).toContain('--max-reaction-skip-rate-increase-pp 50'); }); });