0e5cec927a
Red/Green/Refactor cycle is now mandatory for all development
2.0 KiB
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
- Få uppgift från Gravl PM
- Läs spec i docs/current-task.md
- Skriv failing test - visa PM
- Implementera tills test passerar
- Refaktorera om nödvändigt
- Commit med rätt prefix
- Rapportera till PM
Uppdaterad: 2026-02-28