Files
openclaw/src/agents/skills-status.test.ts
2026-03-28 03:45:56 +00:00

54 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { buildWorkspaceSkillStatus } from "./skills-status.js";
import { createCanonicalFixtureSkill } from "./skills.test-helpers.js";
import type { SkillEntry } from "./skills/types.js";
describe("buildWorkspaceSkillStatus", () => {
it("does not surface install options for OS-scoped skills on unsupported platforms", () => {
if (process.platform === "win32") {
// Keep this simple; win32 platform naming is already explicitly handled elsewhere.
return;
}
const mismatchedOs = process.platform === "darwin" ? "linux" : "darwin";
const entry: SkillEntry = {
skill: createFixtureSkill({
name: "os-scoped",
description: "test",
filePath: "/tmp/os-scoped",
baseDir: "/tmp",
source: "test",
}),
frontmatter: {},
metadata: {
os: [mismatchedOs],
requires: { bins: ["fakebin"] },
install: [
{
id: "brew",
kind: "brew",
formula: "fake",
bins: ["fakebin"],
label: "Install fake (brew)",
},
],
},
};
const report = buildWorkspaceSkillStatus("/tmp/ws", { entries: [entry] });
expect(report.skills).toHaveLength(1);
expect(report.skills[0]?.install).toEqual([]);
});
});
function createFixtureSkill(params: {
name: string;
description: string;
filePath: string;
baseDir: string;
source: string;
}): SkillEntry["skill"] {
return createCanonicalFixtureSkill(params);
}