import { describe, expect, test } from "bun:test" import path from "path" import { InstructionPrompt } from "../../src/session/instruction" import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" describe("InstructionPrompt.resolve", () => { test("returns empty when AGENTS.md is at project root (already in systemPaths)", async () => { await using tmp = await tmpdir({ init: async (dir) => { await Bun.write(path.join(dir, "AGENTS.md"), "# Root Instructions") await Bun.write(path.join(dir, "src", "file.ts"), "const x = 1") }, }) await Instance.provide({ directory: tmp.path, fn: async () => { const system = await InstructionPrompt.systemPaths() expect(system.has(path.join(tmp.path, "AGENTS.md"))).toBe(true) const results = await InstructionPrompt.resolve([], path.join(tmp.path, "src", "file.ts")) expect(results).toEqual([]) }, }) }) test("returns AGENTS.md from subdirectory (not in systemPaths)", async () => { await using tmp = await tmpdir({ init: async (dir) => { await Bun.write(path.join(dir, "subdir", "AGENTS.md"), "# Subdir Instructions") await Bun.write(path.join(dir, "subdir", "nested", "file.ts"), "const x = 1") }, }) await Instance.provide({ directory: tmp.path, fn: async () => { const system = await InstructionPrompt.systemPaths() expect(system.has(path.join(tmp.path, "subdir", "AGENTS.md"))).toBe(false) const results = await InstructionPrompt.resolve([], path.join(tmp.path, "subdir", "nested", "file.ts")) expect(results.length).toBe(1) expect(results[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) }, }) }) })