Files
2026-07-13 13:39:12 +08:00

47 lines
1.4 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import {
SkillConfigSchema,
SkillCreateInputSchema,
SkillSchema,
SkillUpdateInputSchema,
} from "../../src/lib/skills/schemas.ts";
import { SkillMode } from "../../src/lib/skills/types.ts";
test("skills schema module keeps runtime schemas exported", () => {
assert.equal(typeof SkillSchema.safeParse, "function");
assert.equal(typeof SkillCreateInputSchema.safeParse, "function");
assert.equal(typeof SkillUpdateInputSchema.safeParse, "function");
assert.equal(typeof SkillConfigSchema.safeParse, "function");
});
test("SkillCreateInputSchema accepts a valid custom skill definition", () => {
const result = SkillCreateInputSchema.safeParse({
name: "memory-search",
version: "1.2.3",
description: "Search memory entries",
schema: {
input: { query: "string" },
output: { results: "array" },
},
handler: "export default async function run() {}",
});
assert.equal(result.success, true);
});
test("SkillConfigSchema applies defaults for execution settings", () => {
const result = SkillConfigSchema.safeParse({
enabled: true,
mode: SkillMode.HYBRID,
allowedSkills: ["memory-search"],
});
assert.equal(result.success, true);
if (result.success) {
assert.equal(result.data.timeout, 30000);
assert.equal(result.data.maxRetries, 3);
}
});