test(skill-loader): isolate skill fixtures

This commit is contained in:
YeonGyu-Kim
2026-05-30 15:34:55 +09:00
parent 85eb9e6e0e
commit 01a0d90c6a
@@ -26,11 +26,13 @@ beforeEach(() => {
clearSkillCache() clearSkillCache()
originalEnv = { originalEnv = {
CLAUDE_CONFIG_DIR: process.env.CLAUDE_CONFIG_DIR, CLAUDE_CONFIG_DIR: process.env.CLAUDE_CONFIG_DIR,
HOME: process.env.HOME,
OPENCODE_CONFIG_DIR: process.env.OPENCODE_CONFIG_DIR, OPENCODE_CONFIG_DIR: process.env.OPENCODE_CONFIG_DIR,
} }
const unique = `skill-content-test-${Date.now()}-${Math.random().toString(16).slice(2)}` const unique = `skill-content-test-${Date.now()}-${Math.random().toString(16).slice(2)}`
testConfigDir = join(tmpdir(), unique) testConfigDir = join(tmpdir(), unique)
process.env.CLAUDE_CONFIG_DIR = testConfigDir process.env.CLAUDE_CONFIG_DIR = testConfigDir
process.env.HOME = testConfigDir
process.env.OPENCODE_CONFIG_DIR = testConfigDir process.env.OPENCODE_CONFIG_DIR = testConfigDir
}) })
@@ -208,11 +210,11 @@ describe("resolveSkillContentAsync", () => {
it("returns null for ambiguous short name async", async () => { it("returns null for ambiguous short name async", async () => {
// given: two skills with same short name in different namespaces // given: two skills with same short name in different namespaces
createNestedSkill(testConfigDir, "superpowers", "debugging", "superpowers content") createNestedSkill(testConfigDir, "superpowers", "ambiguous-short", "superpowers content")
createNestedSkill(testConfigDir, "utils", "debugging", "utils content") createNestedSkill(testConfigDir, "utils", "ambiguous-short", "utils content")
// when: resolving by ambiguous short name // when: resolving by ambiguous short name
const result = await resolveSkillContentAsync("debugging") const result = await resolveSkillContentAsync("ambiguous-short")
// then: ambiguous => null // then: ambiguous => null
expect(result).toBeNull() expect(result).toBeNull()
@@ -454,16 +456,16 @@ describe("resolveMultipleSkillsAsync", () => {
it("does not resolve ambiguous short name in batch", async () => { it("does not resolve ambiguous short name in batch", async () => {
// given: two skills with same short name // given: two skills with same short name
createNestedSkill(testConfigDir, "superpowers", "debugging", "sp content") createNestedSkill(testConfigDir, "superpowers", "ambiguous-short", "sp content")
createNestedSkill(testConfigDir, "utils", "debugging", "utils content") createNestedSkill(testConfigDir, "utils", "ambiguous-short", "utils content")
// when: resolving ambiguous short name with builtin // when: resolving ambiguous short name with builtin
const result = await resolveMultipleSkillsAsync(["debugging", "playwright"]) const result = await resolveMultipleSkillsAsync(["ambiguous-short", "playwright"])
// then: debugging not found, playwright resolved // then: debugging not found, playwright resolved
expect(result.resolved.size).toBe(1) expect(result.resolved.size).toBe(1)
expect(result.resolved.has("playwright")).toBe(true) expect(result.resolved.has("playwright")).toBe(true)
expect(result.notFound).toContain("debugging") expect(result.notFound).toContain("ambiguous-short")
}) })
it("prefers exact match over short name in batch", async () => { it("prefers exact match over short name in batch", async () => {