# Copilot instructions — EQDEV-620 test coverage

## What we are doing
Raising SonarQube line coverage above 91% by **adding tests only**.

## Absolute rules (apply to every suggestion in this repo)
- Only generate or modify code under `src/test/**`.
- Never suggest changes to anything under `src/main/**`.
- Never suggest changes to `pom.xml` (root or any module).
- If achieving coverage seems to require a production-code change, say so explicitly
  instead of editing main source — do not silently modify `src/main`.

## Test conventions
- Java 21, Spring Boot 3, Maven multi-module, JUnit 5.
- Use Mockito for mocks and AssertJ (`assertThat(...)`) for assertions.
- Mirror the production package under `src/test/java/...`; name the class `<Class>Test`.
- Match the style of existing neighbouring tests before introducing new patterns.

## Quality bar (no coverage theater)
- Every test must assert observable behavior or outcomes, never just execute lines.
- Prioritize uncovered branches, exception paths, and boundary conditions.
- A test with no meaningful assertion is wrong even if it raises the coverage %.
  Mutation testing (PIT) runs in CI and will flag empty tests.

## When generating tests
Prefer parameterized tests for input variations. Cover null/empty/error inputs.
Keep each test focused on one behavior with a clear Arrange-Act-Assert structure.
