From 3266a998935f712697364fdf21cb463c95aae621 Mon Sep 17 00:00:00 2001 From: daixinwang <92299142+daixinwang@users.noreply.github.com> Date: Sat, 15 Aug 2026 01:22:01 +0800 Subject: [PATCH] fix: correct Quick take verb agreement --- src/output/printers.ts | 4 ++-- tests/output.test.ts | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/output/printers.ts b/src/output/printers.ts index 0c11a333..a358128b 100644 --- a/src/output/printers.ts +++ b/src/output/printers.ts @@ -68,8 +68,8 @@ export function printActionSummary(findings: Finding[], overrideCount = 0, packa console.log(`- ${chalk.gray("Package manager:")} ${packageManager}`); } if (findings.length > 0) { - console.log(`- ${chalk.green(String(direct))} vulnerable ${pluralize(direct, "package")} look directly fixable in this project.`); - console.log(`- ${chalk.yellow(String(transitive))} ${pluralize(transitive, "issue")} come through other dependencies.`); + console.log(`- ${chalk.green(String(direct))} vulnerable ${pluralize(direct, "package")} ${direct === 1 ? "looks" : "look"} directly fixable in this project.`); + console.log(`- ${chalk.yellow(String(transitive))} ${pluralize(transitive, "issue")} ${transitive === 1 ? "comes" : "come"} through other dependencies.`); if (unknown > 0) { console.log(`- ${chalk.magenta(String(unknown))} ${pluralize(unknown, "package")} could not be clearly classified as direct or transitive.`); } diff --git a/tests/output.test.ts b/tests/output.test.ts index 070dd86c..f74e3d68 100644 --- a/tests/output.test.ts +++ b/tests/output.test.ts @@ -1273,8 +1273,22 @@ describe("output printers", () => { expect(lines[0]).toContain("✗ Found 2 packages (2 CVEs) with known OSV matches from package-lock"); expect(lines.join("\n")).toContain("Quick take"); - expect(lines.join("\n")).toContain("1 vulnerable package look directly fixable in this project."); - expect(lines.join("\n")).toContain("1 issue come through other dependencies."); + expect(lines.join("\n")).toContain("1 vulnerable package looks directly fixable in this project."); + expect(lines.join("\n")).toContain("1 issue comes through other dependencies."); + }); + + it("keeps plural verbs in the action summary", () => { + const findings = [ + createFinding({ relationship: "direct" }), + createFinding({ relationship: "direct" }), + createFinding(), + createFinding(), + ]; + + const output = captureLogs(() => printActionSummary(findings)).join("\n"); + + expect(output).toContain("2 vulnerable packages look directly fixable in this project."); + expect(output).toContain("2 issues come through other dependencies."); }); it("prints a table and final status for findings", () => {