L'API des parchemins est devenue le premier canal de réservation de la taverne. Une régression y coûterait cher. Et une fuite du sceau d'une guilde coûterait encore plus cher.
Votre mission
Dans tests/Taverne/ApiTest.php, préparez une guilde (avec le sceau self::SCEAU), un plat et un avis, puis testez :
GET /api/plats: du JSON, et seulement les champs de la carte (ni avis, ni note) ;POST /api/reservationsavec le sceau : 201, et la réponse nomme la guilde ;- cette réponse ne contient jamais le sceau ;
- sans sceau : 401 ;
- 13 aventuriers : 422, avec une violation sur
personnes.
Tester une API
$this->client->jsonRequest('GET', '/api/plats'); $this->client->jsonRequest('POST', '/api/reservations', ['nom' => 'Gimli', …], ['HTTP_AUTHORIZATION' => 'Bearer …']); $this->assertResponseStatusCodeSame(201); $json = json_decode($this->client->getResponse()->getContent(), true);
Soyez précis
Pour une API, « ça répond » ne suffit pas : ce sont les détails qui forment le contrat avec les parchemins. Le code exact (201 n'est pas 200), la liste exacte des champs, et ce qui ne doit jamais apparaître.
Quatre mutants 🐛, un par détail.