Spaces:
Running
Running
| import { describe, expect, it, vi } from "vitest"; | |
| const watchMock = vi.fn(() => ({ | |
| on: vi.fn(), | |
| close: vi.fn(async () => undefined), | |
| })); | |
| vi.mock("chokidar", () => { | |
| return { | |
| default: { watch: watchMock }, | |
| }; | |
| }); | |
| describe("ensureSkillsWatcher", () => { | |
| it("ignores node_modules, dist, and .git by default", async () => { | |
| const mod = await import("./refresh.js"); | |
| mod.ensureSkillsWatcher({ workspaceDir: "/tmp/workspace" }); | |
| expect(watchMock).toHaveBeenCalledTimes(1); | |
| const opts = watchMock.mock.calls[0]?.[1] as { ignored?: unknown }; | |
| expect(opts.ignored).toBe(mod.DEFAULT_SKILLS_WATCH_IGNORED); | |
| const ignored = mod.DEFAULT_SKILLS_WATCH_IGNORED; | |
| expect(ignored.some((re) => re.test("/tmp/workspace/skills/node_modules/pkg/index.js"))).toBe( | |
| true, | |
| ); | |
| expect(ignored.some((re) => re.test("/tmp/workspace/skills/dist/index.js"))).toBe(true); | |
| expect(ignored.some((re) => re.test("/tmp/workspace/skills/.git/config"))).toBe(true); | |
| expect(ignored.some((re) => re.test("/tmp/.hidden/skills/index.md"))).toBe(false); | |
| }); | |
| }); | |