From 62a27d55e5a9e22180f066460e5d00daefbd7d63 Mon Sep 17 00:00:00 2001 From: Dave Henton Date: Wed, 18 Mar 2026 09:05:54 -0500 Subject: [PATCH 1/2] Add Qlty code coverage reporting to CI Configure vitest coverage with v8 provider and lcov reporter across all three packages. Generate and upload combined coverage data from the node 24 matrix entry in the test-node-versions CI job. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 16 ++++++++++++++++ package.json | 1 + packages/openapi-fetch/vitest.config.ts | 4 ++++ packages/openapi-react-query/vitest.config.ts | 4 ++++ packages/openapi-typescript/vitest.config.ts | 4 ++++ 5 files changed, 29 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 014c1f885..21afa10cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,22 @@ jobs: with: run_install: true - run: pnpm test + - name: Generate coverage + if: matrix.node-version == 24 + run: | + pnpm --filter='openapi-fetch' --filter='openapi-react-query' --filter='openapi-typescript' run test:js -- --coverage + mkdir -p coverage + for pkg in openapi-fetch openapi-react-query openapi-typescript; do + if [ -f "packages/$pkg/coverage/lcov.info" ]; then + sed "s|SF:|SF:packages/$pkg/|g" "packages/$pkg/coverage/lcov.info" >> coverage/lcov.info + fi + done + - name: Upload coverage to Qlty + if: matrix.node-version == 24 + uses: qltysh/qlty-action/coverage@v2 + with: + token: ${{ secrets.QLTY_COVERAGE_TOKEN }} + files: coverage/lcov.info test-e2e: runs-on: ubuntu-latest steps: diff --git a/package.json b/package.json index bf5c1b86e..0305fbd59 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "devDependencies": { "@arethetypeswrong/cli": "0.18.2", "@biomejs/biome": "2.4.7", + "@vitest/coverage-v8": "4.1.0", "@changesets/changelog-github": "0.6.0", "@changesets/cli": "2.30.0", "@playwright/test": "1.56.0", diff --git a/packages/openapi-fetch/vitest.config.ts b/packages/openapi-fetch/vitest.config.ts index 3ac7efb64..787da2454 100644 --- a/packages/openapi-fetch/vitest.config.ts +++ b/packages/openapi-fetch/vitest.config.ts @@ -9,5 +9,9 @@ export default defineConfig({ tsconfig: "./tsconfig.json", }, restoreMocks: true, + coverage: { + provider: "v8", + reporter: ["lcov"], + }, }, }); diff --git a/packages/openapi-react-query/vitest.config.ts b/packages/openapi-react-query/vitest.config.ts index b67a005c0..8d5c5491e 100644 --- a/packages/openapi-react-query/vitest.config.ts +++ b/packages/openapi-react-query/vitest.config.ts @@ -6,5 +6,9 @@ export default defineConfig({ test: { environment: "jsdom", globals: true, + coverage: { + provider: "v8", + reporter: ["lcov"], + }, }, }); diff --git a/packages/openapi-typescript/vitest.config.ts b/packages/openapi-typescript/vitest.config.ts index 2e20c2d14..a334d8d1c 100644 --- a/packages/openapi-typescript/vitest.config.ts +++ b/packages/openapi-typescript/vitest.config.ts @@ -5,5 +5,9 @@ export default defineConfig({ environment: "node", clearMocks: true, globals: true, + coverage: { + provider: "v8", + reporter: ["lcov"], + }, }, }); From 6375d58b7ac0377bd806f24be1bab8037a2b5e09 Mon Sep 17 00:00:00 2001 From: Dave Henton Date: Wed, 18 Mar 2026 09:07:19 -0500 Subject: [PATCH 2/2] Fix: install @vitest/coverage-v8 at runtime in CI Instead of adding to package.json (which breaks the lockfile), install the coverage dependency on-the-fly during the coverage generation step. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 1 + package.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21afa10cb..c2d779f57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,7 @@ jobs: - name: Generate coverage if: matrix.node-version == 24 run: | + pnpm add -Dw @vitest/coverage-v8 pnpm --filter='openapi-fetch' --filter='openapi-react-query' --filter='openapi-typescript' run test:js -- --coverage mkdir -p coverage for pkg in openapi-fetch openapi-react-query openapi-typescript; do diff --git a/package.json b/package.json index 0305fbd59..bf5c1b86e 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "devDependencies": { "@arethetypeswrong/cli": "0.18.2", "@biomejs/biome": "2.4.7", - "@vitest/coverage-v8": "4.1.0", "@changesets/changelog-github": "0.6.0", "@changesets/cli": "2.30.0", "@playwright/test": "1.56.0",