Skip to content

13 - TDD Specification for Flashcard CRUD Operations #34

@Acki77

Description

@Acki77

📑 User Story: TDD Specification for Flashcard CRUD Operations

Value Proposition

As a Lead Developer / Test Engineer
I want to define the test specifications for the remaining API methods (POST, PATCH, DELETE)
In order to provide Elena and Karsten a clear roadmap and ensure high code quality through TDD.


Description

Nachdem die Testumgebung steht und die GET-Route stabil läuft, definieren wir nun die Anforderungen für die vollständige CRUD-Funktionalität.
Dieses Ticket beinhaltet das Schreiben von "roten" Tests (failing tests), die als technischer Vertrag für die kommende Implementierung dienen. Ziel ist es, dass Elena und Karsten lediglich den Code schreiben müssen, bis die von mir definierten Tests "grün" werden.


Acceptance Criteria

1. POST /api/flashcards (Erstellen)

  • Test: Liefert Status 201 und das erstellte Objekt bei validen Daten zurück.
  • Test: Liefert Status 400, wenn Pflichtfelder (question oder answer) im Body fehlen.

2. PATCH /api/flashcards/[id] (Update)

  • Test: Liefert Status 200 und das aktualisierte Objekt bei Erfolg.
  • Test: Liefert Status 404, wenn die ID nicht in der Datenbank existiert.

3. DELETE /api/flashcards/[id] (Löschen)

  • Test: Liefert Status 200 oder 204 nach erfolgreichem Löschen.
  • Test: Liefert Status 404, wenn die zu löschende ID nicht gefunden wurde.

4. Code Quality & Handover

  • Neue Tests werden mit it.todo() markiert oder in einem separaten Branch gepusht, um den main Branch stabil zu halten.
  • Kommentare im Test-Code geben Hinweise auf Mongoose-Besonderheiten (z.B. { new: true } bei Updates).

Tasks

  1. Neuen Feature-Branch feature/api-tdd-specs erstellen.
  2. flashcards.test.js um describe-Blöcke für POST, PATCH und DELETE erweitern.
  3. Notwendige Mongoose-Methoden (create, findByIdAndUpdate, findByIdAndDelete) in der mock-factory vorbereiten.
  4. Test-Logik (Arrange-Act-Assert) für jedes Szenario implementieren.
  5. Failing Tests pushen und das Team (Elena & Karsten) informieren.

Note from the Test Engineer: > "Wir bauen hier die Leitplanken. Elena und Karsten müssen dann nur noch Gas geben, ohne aus der Kurve zu fliegen."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    📋 Product Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions