Compare commits

...

3 Commits

Author SHA1 Message Date
Jarred-Sumner
2674ebca34 bun run prettier 2025-06-30 22:20:41 +00:00
Jarred Sumner
572e0ae57a update 2025-06-30 22:16:47 +00:00
Cursor Agent
c6c833ee78 Enable coverage when --coverage-reporter is specified
Co-authored-by: jarred <jarred@bun.sh>
2025-06-30 22:15:03 +00:00
2 changed files with 45 additions and 0 deletions

View File

@@ -405,6 +405,8 @@ pub fn parse(allocator: std.mem.Allocator, ctx: Command.Context, comptime cmd: C
}
if (args.options("--coverage-reporter").len > 0) {
// Enable coverage when --coverage-reporter is specified
ctx.test_options.coverage.enabled = true;
ctx.test_options.coverage.reporters = .{ .text = false, .lcov = false };
for (args.options("--coverage-reporter")) |reporter| {
if (bun.strings.eqlComptime(reporter, "text")) {

View File

@@ -77,3 +77,46 @@ test("coverage excludes node_modules directory", () => {
expect(result.exitCode).toBe(0);
expect(result.signalCode).toBeUndefined();
});
test("--coverage-reporter enables coverage", () => {
const dir = tempDirWithFiles("cov", {
"demo.test.ts": `
import { test, expect } from "bun:test";
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
test("add", () => {
expect(add(1, 2)).toBe(3);
});
// Call add but not multiply to have partial coverage
add(5, 10);
`,
});
// Use --coverage-reporter without --coverage
const result = Bun.spawnSync([bunExe(), "test", "--coverage-reporter", "text"], {
cwd: dir,
env: {
...bunEnv,
},
stdio: [null, null, "pipe"],
});
const stderr = result.stderr.toString("utf-8");
// Check that coverage reporting actually happened
expect(stderr).toContain("File");
expect(stderr).toContain("% Funcs");
expect(stderr).toContain("% Lines");
expect(stderr).toContain("demo.test.ts");
expect(result.exitCode).toBe(0);
expect(result.signalCode).toBeUndefined();
});