diff --git a/.gitea/workflows/deploy-to-test.yml b/.gitea/workflows/deploy-to-test.yml index d37d364..133ea4a 100644 --- a/.gitea/workflows/deploy-to-test.yml +++ b/.gitea/workflows/deploy-to-test.yml @@ -119,6 +119,11 @@ jobs: # --- JWT Secret for Passport authentication in tests --- JWT_SECRET: ${{ secrets.JWT_SECRET }} + # --- V8 Coverage for Server Process --- + # This variable tells the Node.js process (our server, started by globalSetup) + # where to output its raw V8 coverage data. + NODE_V8_COVERAGE: '.coverage/tmp/integration-server' + # --- Increase Node.js memory limit to prevent heap out of memory errors --- # This is crucial for memory-intensive tasks like running tests and coverage. NODE_OPTIONS: '--max-old-space-size=8192' @@ -137,15 +142,15 @@ jobs: # The `|| true` ensures the workflow continues even if tests fail, allowing coverage to run. echo "--- Running Unit Tests ---" # npm run test:unit -- --coverage --reporter=verbose --includeTaskLocation --testTimeout=10000 --silent=passed-only || true - npm run test:unit -- --coverage --reporter=verbose --includeTaskLocation --testTimeout=10000 --silent=passed-only --no-file-parallelism || true + npm run test:unit -- --coverage --coverage.exclude='**/*.test.ts' --coverage.exclude='**/tests/**' --coverage.exclude='**/mocks/**' --reporter=verbose --includeTaskLocation --testTimeout=10000 --silent=passed-only --no-file-parallelism || true echo "--- Running Integration Tests ---" - npm run test:integration -- --coverage --reporter=verbose --includeTaskLocation --testTimeout=10000 --silent=passed-only || true + npm run test:integration -- --coverage --coverage.exclude='**/*.test.ts' --coverage.exclude='**/tests/**' --coverage.exclude='**/mocks/**' --reporter=verbose --includeTaskLocation --testTimeout=10000 --silent=passed-only || true echo "--- Running E2E Tests ---" # Run E2E tests using the dedicated E2E config which inherits from integration config. # We still pass --coverage to enable it, but directory and timeout are now in the config. - npx vitest run --config vitest.config.e2e.ts --coverage --reporter=verbose --no-file-parallelism || true + npx vitest run --config vitest.config.e2e.ts --coverage --coverage.exclude='**/*.test.ts' --coverage.exclude='**/tests/**' --coverage.exclude='**/mocks/**' --reporter=verbose --no-file-parallelism || true # Re-enable secret masking for subsequent steps. echo "::secret-masking::" @@ -174,7 +179,7 @@ jobs: # Run c8: read raw files from the temp dir, and output an Istanbul JSON report. # We only generate the 'json' report here because it's all nyc needs for merging. echo "Server coverage report about to be generated..." - npx c8 report --reporter=json --temp-directory .coverage/tmp/integration-server --reports-dir .coverage/integration-server + npx c8 report --exclude='**/*.test.ts' --exclude='**/tests/**' --exclude='**/mocks/**' --reporter=json --temp-directory .coverage/tmp/integration-server --reports-dir .coverage/integration-server echo "Server coverage report generated. Verifying existence:" ls -l .coverage/integration-server/coverage-final.json @@ -213,7 +218,10 @@ jobs: --reporter=text \ --reporter=html \ --report-dir .coverage/ \ - --temp-dir "$NYC_SOURCE_DIR" + --temp-dir "$NYC_SOURCE_DIR" \ + --exclude "**/*.test.ts" \ + --exclude "**/tests/**" \ + --exclude "**/mocks/**" # Re-enable secret masking for subsequent steps. echo "::secret-masking::"