test: add generator freshness contract module (#337)

This commit is contained in:
Tom Boucher
2026-05-26 11:23:16 -04:00
committed by GitHub
parent 80d971d01e
commit fd7c82149c
2 changed files with 60 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
const { test, describe } = require('node:test');
const assert = require('node:assert/strict');
const {
GENERATOR_FRESHNESS_REASON,
evaluateGeneratorFreshness,
} = require('../scripts/generator-freshness-contract.cjs');
describe('generator freshness contract module', () => {
test('fresh when source and generated match exactly', () => {
const out = evaluateGeneratorFreshness({ source: 'abc', generated: 'abc' });
assert.deepStrictEqual(out, { ok: true, reason: GENERATOR_FRESHNESS_REASON.FRESH });
});
test('stale when source and generated differ', () => {
const out = evaluateGeneratorFreshness({ source: 'abc', generated: 'abd' });
assert.deepStrictEqual(out, { ok: false, reason: GENERATOR_FRESHNESS_REASON.STALE });
});
test('missing_source when source omitted', () => {
const out = evaluateGeneratorFreshness({ generated: 'abc' });
assert.deepStrictEqual(out, { ok: false, reason: GENERATOR_FRESHNESS_REASON.MISSING_SOURCE });
});
test('missing_generated when generated omitted', () => {
const out = evaluateGeneratorFreshness({ source: 'abc' });
assert.deepStrictEqual(out, { ok: false, reason: GENERATOR_FRESHNESS_REASON.MISSING_GENERATED });
});
});