From d7d5d0e3adb4849e60e33bd00e0a73c345f59caf Mon Sep 17 00:00:00 2001 From: Derek Pearson Date: Sun, 22 Mar 2026 07:52:11 -0400 Subject: [PATCH] fix(skills): address QA round 8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QA8-1: Add case-insensitivity test for FastAPI detection using PyPI canonical name 'FastAPI' (mixed case) in pyproject.toml. QA8-2: False positive — comment matching is acceptable tradeoff; mentions of 'fastapi' in requirements comments almost always correlate with actual FastAPI usage or intent. QA8-3: Empty catch block is trivially correct; skipping test for it. --- src/resources/extensions/gsd/tests/detection.test.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/resources/extensions/gsd/tests/detection.test.ts b/src/resources/extensions/gsd/tests/detection.test.ts index f76740cc0..c8b89ac9b 100644 --- a/src/resources/extensions/gsd/tests/detection.test.ts +++ b/src/resources/extensions/gsd/tests/detection.test.ts @@ -702,3 +702,14 @@ test("detectProjectSignals: Django project does NOT get dep:fastapi marker", () cleanup(dir); } }); + +test("detectProjectSignals: FastAPI detected case-insensitively (PyPI canonical name)", () => { + const dir = makeTempDir("signals-fastapi-case"); + try { + writeFileSync(join(dir, "pyproject.toml"), '[project]\ndependencies = ["FastAPI>=0.100"]\n', "utf-8"); + const signals = detectProjectSignals(dir); + assert.ok(signals.detectedFiles.includes("dep:fastapi"), "should detect FastAPI (mixed case)"); + } finally { + cleanup(dir); + } +});