import { describe, expect, test } from "bun:test" import fs from "fs/promises" import path from "path" import { tmpdir } from "../fixture/fixture" import { Ripgrep } from "../../src/file/ripgrep" describe("file.ripgrep", () => { test("defaults to include hidden", async () => { await using tmp = await tmpdir({ init: async (dir) => { await Bun.write(path.join(dir, "visible.txt"), "hello") await fs.mkdir(path.join(dir, ".opencode"), { recursive: true }) await Bun.write(path.join(dir, ".opencode", "thing.json"), "{}") }, }) const files = await Array.fromAsync(Ripgrep.files({ cwd: tmp.path })) const hasVisible = files.includes("visible.txt") const hasHidden = files.includes(path.join(".opencode", "thing.json")) expect(hasVisible).toBe(true) expect(hasHidden).toBe(true) }) test("hidden false excludes hidden", async () => { await using tmp = await tmpdir({ init: async (dir) => { await Bun.write(path.join(dir, "visible.txt"), "hello") await fs.mkdir(path.join(dir, ".opencode"), { recursive: true }) await Bun.write(path.join(dir, ".opencode", "thing.json"), "{}") }, }) const files = await Array.fromAsync(Ripgrep.files({ cwd: tmp.path, hidden: false })) const hasVisible = files.includes("visible.txt") const hasHidden = files.includes(path.join(".opencode", "thing.json")) expect(hasVisible).toBe(true) expect(hasHidden).toBe(false) }) })