openclaw/src/agents/skills.resolveskillspromptforrun.test.ts

33 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-01-14 01:08:15 +00:00
import { describe, expect, it } from "vitest";
2026-02-18 01:29:02 +00:00
import { resolveSkillsPromptForRun } from "./skills.js";
import type { SkillEntry } from "./skills/types.js";
2026-01-14 01:08:15 +00:00
describe("resolveSkillsPromptForRun", () => {
it("prefers snapshot prompt when available", () => {
const prompt = resolveSkillsPromptForRun({
skillsSnapshot: { prompt: "SNAPSHOT", skills: [] },
2026-01-30 03:15:10 +01:00
workspaceDir: "/tmp/openclaw",
2026-01-14 01:08:15 +00:00
});
expect(prompt).toBe("SNAPSHOT");
});
it("builds prompt from entries when snapshot is missing", () => {
const entry: SkillEntry = {
skill: {
name: "demo-skill",
description: "Demo",
filePath: "/app/skills/demo-skill/SKILL.md",
baseDir: "/app/skills/demo-skill",
2026-01-30 03:15:10 +01:00
source: "openclaw-bundled",
2026-02-17 15:49:00 +09:00
disableModelInvocation: false,
2026-01-14 01:08:15 +00:00
},
frontmatter: {},
};
const prompt = resolveSkillsPromptForRun({
entries: [entry],
2026-01-30 03:15:10 +01:00
workspaceDir: "/tmp/openclaw",
2026-01-14 01:08:15 +00:00
});
expect(prompt).toContain("<available_skills>");
expect(prompt).toContain("/app/skills/demo-skill/SKILL.md");
});
});