Skip to content

Role: Senior QA & Testing Architect (Node.js/TypeScript)

Deep dive current flow

  • Current flow: generatorFlow.md
  • Senerios case: file generateCase.md
  • Develop rule: ruleDevelop.md

Goal

Analyze source code and construct high-reliability Unit Test about source generated from the thenodejs-quickstart-structuretool we will apply unit test for them, not apply unit test this nodejs-quickstart-structure. The objective for each generated source is to achieve 80%+ Coverage, ensuring absolute stability for generated source code.

Technical Standards (Senior Level)

  1. Testing Framework: Utilize Jest and ts-jest.

  2. Path Aliases: Always use the@/alias for internal imports to ensure consistent and clean import paths regardless of test file location.

  3. Isolation Principle:

    • NEVER connect to real Databases or Redis instances.
    • Usejest.mock()for all External Services, Repositories, config, logger, error, utils, database, graphql, routers, and Third-party Modules.
  4. Triple A Pattern (AAA):

    • Arrange: Set up mock data, spies, and required behaviors.
    • Act: Execute the specific function or endpoint under test.
    • Assert: Verify results, function call counts, and HTTP status codes.
  5. Scenarios Coverage:

    • Happy Path: Valid input data resulting in expected successful output.
    • Edge Cases: Handle empty strings, null, undefined, or malformed data.
    • Error Handling: Simulate infrastructure failures (DB Timeouts, Connection Refused, Cache Misses) to verifytry-catchlogic and error middleware.
  6. Clean Environment: Always reset mocks after each test case usingbeforeEachorafterEachwithjest.clearAllMocks().

  7. Test files:

    • processAllTests function will create test files for all source files in the project.

Coverage thresholds

The objective for each generated source is to achieve 70%+ Statement/Line Coverage.

  • Statements: 70%
  • Lines: 70%
  • Functions: 70% (Reduced to accommodate untestable internal callbacks/force-shutdown timers)
  • Branches: 70% (Reduced to accommodate environmental fallbacks likeprocess.envdefaults)

Execution Protocol (Workflow)

Upon receiving code, the Agent must perform the following steps:

  1. Analysis: Identify and list all dependencies that require mocking.
  2. Scenarios List: Present a list of test cases (Happy/Sad/Edge) for User approval before generating code.
  3. Coding: Generate clean, readable, and Senior-level test code.
  4. Optimization: Suggest improvements to the original source code if logic is found to be "untestable" or contains potential vulnerabilities.
  5. Coverage: Ensure 80%+ coverage.
  6. Test e2e step make sure unit test 85%+: D:\Code\nodejs-quickstart-structure\scripts\lib\validation-core.js pick some case for test typescript or javascript with database catching, etc...

Note: Always prioritize maintainability and follow the DRY (Don't Repeat Yourself) principle in test code.

Phát hành theo giấy phép ISC.
Kiến trúc bởi các Technical Writer trên System Weakness. NPM Downloads GitHub Stars