import assert from 'node:assert/strict'; import { compareRenewal } from './acme-renew-tls.mjs'; const before = { fqdn: 'mmt253-a1b2c3d4.pngs.top', certName: 'mmt253-a1b2c3d4', nativeName: 'mmt253-a1b2c3d4', remoteAddress: '104.165.244.7', authorized: true, hostnameMatched: true, nativePrivateKey: true, fingerprint256: 'a'.repeat(64), nativeFingerprint256: 'a'.repeat(64), sampledAt: '2026-10-14T12:00:00Z', validUntil: '2027-01-12T12:00:00Z' }; const after = { ...before, fingerprint256: 'b'.repeat(64), nativeFingerprint256: 'b'.repeat(64), sampledAt: '2026-10-14T12:01:00Z' }; assert.equal(compareRenewal(before, after).fingerprintChanged, true); for (const patch of [{ fingerprint256: before.fingerprint256, nativeFingerprint256: before.nativeFingerprint256 }, { nativeFingerprint256: before.nativeFingerprint256 }, { authorized: false }, { hostnameMatched: false }, { nativePrivateKey: false }, { nativeName: 'another' }, { fqdn: 'other.pngs.top' }, { remoteAddress: '194.226.121.150' }, { validUntil: 'bad' }, { validUntil: '2026-10-13T12:00:00Z' }, { sampledAt: '2026-10-14T11:00:00Z' }]) assert.throws(() => compareRenewal(before, { ...after, ...patch })); console.log('Renewal acceptance comparison: changed leaf passes; 11 false-success cases rejected. No network or CA calls.');