openskynet / src /agents /pi-embedded-runner /skills-runtime.test.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import { beforeEach, describe, expect, it, vi } from "vitest";
import type { OpenClawConfig } from "../../config/config.js";
import type { SkillSnapshot } from "../skills.js";
const hoisted = vi.hoisted(() => ({
loadWorkspaceSkillEntries: vi.fn(
(_workspaceDir: string, _options?: { config?: OpenClawConfig }) => [],
),
}));
vi.mock("../skills.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("../skills.js")>();
return {
...actual,
loadWorkspaceSkillEntries: (workspaceDir: string, options?: { config?: OpenClawConfig }) =>
hoisted.loadWorkspaceSkillEntries(workspaceDir, options),
};
});
const { resolveEmbeddedRunSkillEntries } = await import("./skills-runtime.js");
describe("resolveEmbeddedRunSkillEntries", () => {
beforeEach(() => {
hoisted.loadWorkspaceSkillEntries.mockReset();
hoisted.loadWorkspaceSkillEntries.mockReturnValue([]);
});
it("loads skill entries with config when no resolved snapshot skills exist", () => {
const config: OpenClawConfig = {
plugins: {
entries: {
diffs: { enabled: true },
},
},
};
const result = resolveEmbeddedRunSkillEntries({
workspaceDir: "/tmp/workspace",
config,
skillsSnapshot: {
prompt: "skills prompt",
skills: [],
},
});
expect(result.shouldLoadSkillEntries).toBe(true);
expect(hoisted.loadWorkspaceSkillEntries).toHaveBeenCalledTimes(1);
expect(hoisted.loadWorkspaceSkillEntries).toHaveBeenCalledWith("/tmp/workspace", { config });
});
it("skips skill entry loading when resolved snapshot skills are present", () => {
const snapshot: SkillSnapshot = {
prompt: "skills prompt",
skills: [{ name: "diffs" }],
resolvedSkills: [],
};
const result = resolveEmbeddedRunSkillEntries({
workspaceDir: "/tmp/workspace",
config: {},
skillsSnapshot: snapshot,
});
expect(result).toEqual({
shouldLoadSkillEntries: false,
skillEntries: [],
});
expect(hoisted.loadWorkspaceSkillEntries).not.toHaveBeenCalled();
});
});