**Priority:** P1 — Medium
**Context:** The existing SVGExporterTest tests the full export pipeline but obscures individual visitor logic. Direct visitor tests provide:
- **Isolation** — tests fail at the specific visitor method
- **Faster feedback** — no complex shape construction needed
- **Edge case targeting** — test specific attribute combinations
**Scope:** `src/main/java/ovh/gasser/newshapes/ui/visitors/SVGDraftman.java`
**Goal:** Test each `visit*()` method in isolation.
**Assertions strategy:**
| Use Exact Match For | Use Contains/Partial For |
|---|---|
| Element tags (`<rect>`, `<circle>`) | Dynamic values (coords, colors) |
| Fixed attributes (xmlns, DOCTYPE) | CSS output ordering |
| Structure markers | |
**Edge cases to cover:**
- Null ColorAttributes
- Filled only / stroked only / both / neither
- Empty collection
- Nested SCollection
**Estimate:** 2 hours
**Dependencies:** None
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Priority: P1 — Medium
Context: The existing SVGExporterTest tests the full export pipeline but obscures individual visitor logic. Direct visitor tests provide:
Scope:
src/main/java/ovh/gasser/newshapes/ui/visitors/SVGDraftman.javaGoal: Test each
visit*()method in isolation.Assertions strategy:
<rect>,<circle>)Edge cases to cover:
Estimate: 2 hours
Dependencies: None