43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { defineModule } from "../src/index.js";
|
|
|
|
describe("defineModule", () => {
|
|
it("returns a validated and normalized public manifest", () => {
|
|
const module = defineModule({
|
|
manifestVersion: 1,
|
|
id: "example",
|
|
name: "Example",
|
|
version: "0.1.0",
|
|
compatibility: {
|
|
platform: "^0.1.0",
|
|
moduleSdk: "^0.1.0",
|
|
},
|
|
entrypoints: {
|
|
server: "./src/server/index.ts",
|
|
},
|
|
});
|
|
|
|
expect(module.capabilities).toEqual([]);
|
|
expect(module.permissions).toEqual([]);
|
|
expect(module.storage.buckets).toEqual([]);
|
|
});
|
|
|
|
it("rejects invalid module definitions before runtime registration", () => {
|
|
expect(() =>
|
|
defineModule({
|
|
manifestVersion: 1,
|
|
id: "Not Valid",
|
|
name: "Invalid",
|
|
version: "0.1.0",
|
|
compatibility: {
|
|
platform: "^0.1.0",
|
|
moduleSdk: "^0.1.0",
|
|
},
|
|
entrypoints: {
|
|
server: "./src/server/index.ts",
|
|
},
|
|
}),
|
|
).toThrow();
|
|
});
|
|
});
|