Files
xinmi/scripts/verify_current_generation.test.cjs
T

56 lines
2.9 KiB
JavaScript
Raw Normal View History

const assert = require('node:assert/strict')
const { test } = require('node:test')
const { spawnSync } = require('node:child_process')
const path = require('node:path')
const { materials, sourceSummary, versionWithSources, cleanupBlocker } = require('./verify_current_generation.cjs')
test('99 real files are unique and remain in one complete model batch', () => {
const sources = materials()
assert.equal(sources.length, 99)
assert.equal(new Set(sources.map(source => source.name)).size, 99)
assert.equal(new Set(sourceSummary(sources).map(source => source.sha256)).size, 99)
assert.ok(sources.reduce((sum, source) => sum + [...source.text].length, 0) < 12000)
const all = [...sources, ...materials(100, 1)]
assert.equal(new Set(all.map(source => source.text)).size, 100)
})
test('source verification detects missing and truncated middle files', () => {
const sources = materials()
assert.throws(() => versionWithSources([{ number: 2, sources: sources.filter((_, index) => index !== 49) }], 2, sources), /Every submitted source/)
const truncated = sources.map((source, index) => index === 49 ? { ...source, text: source.text.slice(0, 30) } : source)
assert.throws(() => versionWithSources([{ number: 2, sources: truncated }], 2, sources), /Every submitted source/)
})
test('cleanup retains active jobs and every resource they depend on', () => {
const agent = { id: 'agent', archived: true, jobs: [], depends_on: [], deleted: false }
const flow = { id: 'flow', archived: true, jobs: [], depends_on: ['agent'], deleted: false }
const task = { id: 'task', archived: true, jobs: [{ status: 'running' }], depends_on: ['flow'], deleted: false }
const fixtures = [agent, flow, task]
assert.equal(cleanupBlocker(task, fixtures), 'job_not_terminal')
assert.equal(cleanupBlocker(flow, fixtures), 'dependent_fixture_retained')
assert.equal(cleanupBlocker(agent, fixtures), 'dependent_fixture_retained')
task.jobs[0].status = 'failed'
assert.equal(cleanupBlocker(task, fixtures), '')
task.deleted = true
assert.equal(cleanupBlocker(flow, fixtures), '')
flow.deleted = true
assert.equal(cleanupBlocker(agent, fixtures), '')
})
test('unarchived fixtures and uncertain submissions cannot be deleted', () => {
const human = { id: 'human', archived: false, jobs: [], depends_on: [], deleted: false }
assert.equal(cleanupBlocker(human, [human]), 'archive_missing')
human.archived = true
human.uncertain = true
assert.equal(cleanupBlocker(human, [human]), 'request_outcome_uncertain')
})
test('executing without explicit opt-in performs no production work', () => {
const env = { ...process.env }
delete env.RUN_CURRENT_GENERATION
const result = spawnSync(process.execPath, [path.join(__dirname, 'verify_current_generation.cjs')], { env, encoding: 'utf8', timeout: 5000 })
assert.equal(result.status, 0)
assert.match(result.stdout, /Prepared only/)
assert.equal(result.stderr, '')
})