1function assert(condition: unknown, message: string): asserts condition {2 if (!condition) throw new Error(message);3}45Deno.test("real environment files are ignored and untracked", async () => {6 const ignored = await new Deno.Command("git", {7 args: ["check-ignore", ".env"],8 stdout: "null",9 stderr: "piped",10 }).output();11 assert(ignored.success, ".env must be ignored");1213 const tracked = await new Deno.Command("git", {14 args: ["ls-files", ".env", ".env.*"],15 stdout: "piped",16 }).output();17 const trackedFiles = new TextDecoder().decode(tracked.stdout).trim().split("\n").filter(Boolean);18 assert(19 trackedFiles.every((path) => path === ".env.example"),20 `only .env.example may be tracked, found: ${trackedFiles.join(", ")}`,21 );22});2324Deno.test("environment example contains names but no values", async () => {25 const example = await Deno.readTextFile(".env.example");26 const assignments = example.split("\n").filter((line) => /^[A-Z][A-Z0-9_]*=/.test(line));27 assert(assignments.length === 5, "expected five documented environment variables");28 assert(assignments.every((line) => line.endsWith("=")), ".env.example must not contain values");29});