2026-05-01 20:18:50 +02:00
|
|
|
import assert from "node:assert/strict";
|
2026-05-02 04:42:38 +02:00
|
|
|
import { test } from 'vitest';
|
2026-05-01 20:18:50 +02:00
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
checkJsonPolicy,
|
|
|
|
|
hasValidSchemaVersion,
|
|
|
|
|
isSfOwnedJsonContract,
|
|
|
|
|
} from "./check-versioned-json.mjs";
|
|
|
|
|
|
|
|
|
|
test("check-versioned-json: parses every JSON file", () => {
|
|
|
|
|
const files = {
|
|
|
|
|
"package.json": '{"version":"1.0.0"}',
|
|
|
|
|
"src/resources/extensions/sf/learning/data/model-benchmarks.json": "{bad",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const result = checkJsonPolicy(Object.keys(files), (path) => files[path]);
|
|
|
|
|
|
|
|
|
|
assert.equal(result.failures.length, 1);
|
|
|
|
|
assert.match(
|
|
|
|
|
result.failures[0],
|
|
|
|
|
/^src\/resources\/extensions\/sf\/learning\/data\/model-benchmarks\.json: invalid JSON/,
|
|
|
|
|
);
|
|
|
|
|
assert.equal(result.filesParsed, 2);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test("check-versioned-json: requires numeric schemaVersion for SF contracts", () => {
|
|
|
|
|
const files = {
|
|
|
|
|
"src/resources/extensions/sf/learning/data/unit-weights.json":
|
|
|
|
|
'{"_meta":{"schemaVersion":1}}',
|
|
|
|
|
"src/resources/extensions/sf/workflow-templates/registry.json":
|
|
|
|
|
'{"schemaVersion":1,"templates":{}}',
|
|
|
|
|
"src/resources/extensions/sf/learning/data/model-benchmarks.json":
|
|
|
|
|
'{"_meta":{"version":"1"}}',
|
|
|
|
|
"src/resources/extensions/sf/extension-manifest.json":
|
|
|
|
|
'{"version":"1.0.0"}',
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const result = checkJsonPolicy(Object.keys(files), (path) => files[path]);
|
|
|
|
|
|
|
|
|
|
assert.deepEqual(result.failures, [
|
|
|
|
|
"src/resources/extensions/sf/learning/data/model-benchmarks.json: missing numeric schemaVersion marker (top-level or _meta)",
|
|
|
|
|
]);
|
|
|
|
|
assert.equal(result.contractsChecked, 3);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test("check-versioned-json: treats extension version as component version", () => {
|
|
|
|
|
assert.equal(
|
|
|
|
|
isSfOwnedJsonContract("src/resources/extensions/sf/extension-manifest.json"),
|
|
|
|
|
false,
|
|
|
|
|
);
|
|
|
|
|
assert.equal(hasValidSchemaVersion({ version: "1.0.0" }), false);
|
|
|
|
|
assert.equal(hasValidSchemaVersion({ schemaVersion: 1 }), true);
|
|
|
|
|
assert.equal(hasValidSchemaVersion({ _meta: { schemaVersion: 1 } }), true);
|
|
|
|
|
});
|