34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
import { readFile } from "node:fs/promises";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
describe("registry governance manifest", () => {
|
|
it("declares ten typed, single-owner executable registries", async () => {
|
|
const governance = JSON.parse(
|
|
await readFile("config/contracts/registry-governance.json", "utf8"),
|
|
);
|
|
const registries =
|
|
/** @type {Array<{
|
|
* registryId: string,
|
|
* owner: string,
|
|
* requiredFields: string[],
|
|
* fieldTypes: Record<string, string>
|
|
* }>} */ (
|
|
governance.registries
|
|
);
|
|
expect(governance.registries).toHaveLength(10);
|
|
expect(new Set(registries.map((entry) => entry.registryId)).size).toBe(
|
|
10,
|
|
);
|
|
expect(registries.every((entry) => entry.owner)).toBe(true);
|
|
expect(
|
|
registries.every(
|
|
(entry) =>
|
|
Array.isArray(entry.requiredFields) &&
|
|
entry.requiredFields.length > 0 &&
|
|
entry.fieldTypes &&
|
|
Object.keys(entry.fieldTypes).length > 0,
|
|
),
|
|
).toBe(true);
|
|
});
|
|
});
|