Files
gravl/docs/CODING-CONVENTIONS.md
T
clawd e2c112781a docs: add TDD coding conventions
Red/Green/Refactor cycle is now mandatory for all development
2026-02-28 14:43:25 +01:00

2.0 KiB

Gravl Coding Conventions

Utvecklingsmetodik

Red/Green TDD (OBLIGATORISKT)

All ny kod måste följa TDD-cykeln:

🔴 RED → 🟢 GREEN → 🔄 REFACTOR

1. 🔴 RED - Skriv test först

// test/feature.test.js
describe('Feature', () => {
  it('should do expected behavior', async () => {
    const result = await feature.doSomething();
    expect(result).toBe(expected);
  });
});

Kör testet - det MÅSTE faila!

npm test -- --grep "Feature"
# ❌ FAIL (detta är rätt!)

2. 🟢 GREEN - Minimal implementation

Skriv bara tillräckligt med kod för att testet passerar:

// src/feature.js
export function doSomething() {
  return expected; // Minimal lösning
}

Kör testet igen:

npm test -- --grep "Feature"
# ✅ PASS

3. 🔄 REFACTOR - Förbättra

Nu kan du:

  • Refaktorera för clean code
  • Extrahera funktioner
  • Förbättra namngivning
  • Ta bort duplicering

Kör testerna kontinuerligt:

npm test
# ✅ Alla test måste fortfarande passa

Teststruktur

/workspace/gravl/
├── src/
│   └── components/
├── server/
│   └── routes/
└── test/
    ├── unit/           # Enhetstester
    ├── integration/    # API-tester
    └── e2e/            # End-to-end

Namnkonventioner

Tester

  • [feature].test.js - Unit tests
  • [feature].integration.test.js - Integration tests
  • Describe-block: Noun (vad testas)
  • It-block: "should [verb] [expected outcome]"

Commits

test: add failing test for [feature]
feat: implement [feature] to pass tests
refactor: clean up [feature] implementation

Workflow för kodningsagenter

  1. Få uppgift från Gravl PM
  2. Läs spec i docs/current-task.md
  3. Skriv failing test - visa PM
  4. Implementera tills test passerar
  5. Refaktorera om nödvändigt
  6. Commit med rätt prefix
  7. Rapportera till PM

Uppdaterad: 2026-02-28