Files
dh-inspeccion-v2/api-v3/test/unit/inspection-closing-canonical.test.ts
T

19 lines
829 B
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { canonicalJson, sha256CanonicalJson } from '../../src/inspection-closing/canonical-json';
test('D5 canonical JSON sorts object keys recursively and preserves array order', () => {
const left = { z: 3, nested: { y: 2, x: 1 }, list: [{ b: 2, a: 1 }, 4] };
const right = { list: [{ a: 1, b: 2 }, 4], nested: { x: 1, y: 2 }, z: 3 };
assert.equal(canonicalJson(left), canonicalJson(right));
assert.equal(sha256CanonicalJson(left), sha256CanonicalJson(right));
assert.notEqual(sha256CanonicalJson(left), sha256CanonicalJson({ ...right, z: 4 }));
});
test('D5 canonical JSON serializes dates as ISO-8601', () => {
assert.equal(
canonicalJson({ at: new Date('2026-08-15T01:02:03.000Z') }),
'{"at":"2026-08-15T01:02:03.000Z"}',
);
});