test(skill-loader): avoid node:fs mock leakage in project skill references

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-03-16 11:36:38 +09:00
parent 1cfc1c8a8b
commit fe3f0584ed

View File

@@ -1,20 +1,19 @@
/// <reference types="bun-types" />
import { describe, expect, test } from "bun:test"
import { readFileSync } from "node:fs"
import { join } from "node:path"
import { fileURLToPath } from "node:url"
const PROJECT_ROOT = fileURLToPath(new URL("../../..", import.meta.url))
function readProjectSkill(...segments: string[]) {
return readFileSync(join(PROJECT_ROOT, ".opencode", "skills", ...segments, "SKILL.md"), "utf8")
async function readProjectSkill(...segments: string[]) {
return Bun.file(join(PROJECT_ROOT, ".opencode", "skills", ...segments, "SKILL.md")).text()
}
describe("project skill tool references", () => {
describe("#given work-with-pr skill instructions", () => {
test("#when reading the commit delegation example #then it uses a real task category", () => {
const skillContent = readProjectSkill("work-with-pr")
test("#when reading the commit delegation example #then it uses a real task category", async () => {
const skillContent = await readProjectSkill("work-with-pr")
const usesQuickCategory = skillContent.includes(
'task(category="quick", load_skills=["git-master"], prompt="Commit the changes atomically following git-master conventions. Repository is at {WORKTREE_PATH}.")'
@@ -26,8 +25,8 @@ describe("project skill tool references", () => {
})
describe("#given github-triage skill instructions", () => {
test("#when reading task tracking examples #then they use the real task management tool names", () => {
const skillContent = readProjectSkill("github-triage")
test("#when reading task tracking examples #then they use the real task management tool names", async () => {
const skillContent = await readProjectSkill("github-triage")
const usesRealToolNames =
skillContent.includes("task_create(subject=\"Triage: #{number} {title}\")")