From 011e489c8bdf6cf51e3f6917f428918046e0eacf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:20:11 +0000 Subject: [PATCH] fix: Address code review feedback - Added explanation for logger mocking in tests/setup.ts - Removed test files from coverage collection in jest.config.js - Updated tests/README.md to clarify coverage approach and remove outdated threshold reference Co-authored-by: mindesbunister <32161838+mindesbunister@users.noreply.github.com> --- jest.config.js | 1 - tests/README.md | 22 +++++++++++----------- tests/setup.ts | 4 ++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/jest.config.js b/jest.config.js index 265779c..1d35a07 100644 --- a/jest.config.js +++ b/jest.config.js @@ -19,7 +19,6 @@ const config = { setupFilesAfterEnv: ['/tests/setup.ts'], collectCoverageFrom: [ 'lib/trading/position-manager.ts', - 'tests/**/*.ts', ], coverageReporters: ['text', 'text-summary', 'html'], verbose: true, diff --git a/tests/README.md b/tests/README.md index 91626d6..f0cdb99 100644 --- a/tests/README.md +++ b/tests/README.md @@ -50,6 +50,8 @@ These tests verify the **logic** of Position Manager functions in isolation: - Token vs USD conversion requirements - Price verification requirements +**Note:** Coverage metrics are calculated against `lib/trading/position-manager.ts` but will be low because tests extract and validate logic patterns without importing the file directly. This avoids complex mocking while still validating critical trading logic. + The tests extract and validate the pure calculation logic without importing the actual Position Manager, avoiding complex mocking of: - Drift blockchain connections - Pyth price feeds @@ -208,17 +210,15 @@ npm test -- tests/integration/position-manager/ Tests run automatically in CI with: - JUnit XML reports for test results - Coverage reports in HTML and text formats -- Failure threshold of 60% coverage -Configure in `jest.config.js`: +Run tests with coverage report: -```javascript -coverageThreshold: { - global: { - branches: 60, - functions: 60, - lines: 60, - statements: 60, - }, -}, +```bash +npm run test:coverage +``` + +Run tests in CI mode with JUnit reporter: + +```bash +npm run test:ci ``` diff --git a/tests/setup.ts b/tests/setup.ts index c775977..9980810 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -33,6 +33,10 @@ declare global { } // Mock logger to reduce noise during tests +// Logger is mocked to: +// 1. Prevent console output during test runs +// 2. Isolate tests from external I/O operations +// 3. Enable verification of logging calls if needed jest.mock('../lib/utils/logger', () => ({ logger: { log: jest.fn(),