Skip to content
Snippets Groups Projects
Commit 46fa00a8 authored by abouchtita's avatar abouchtita
Browse files

Récupération d'une tâche par ID & test

parent fe3fba3b
No related branches found
No related tags found
1 merge request!1Develop into main
...@@ -21,6 +21,17 @@ app.get('/api/tasks', (req, res) => { ...@@ -21,6 +21,17 @@ app.get('/api/tasks', (req, res) => {
res.json(tasks); res.json(tasks);
}); });
//
app.get('/api/tasks/:id', (req, res) => {
const id = req.params.id;
const task = taskService.getTaskById(id);
if (task) {
res.json(task);
} else {
res.status(404).json({ error: 'Tâche non trouvée' });
}
});
// Fonction pour démarrer le serveur // Fonction pour démarrer le serveur
const startServer = () => { const startServer = () => {
const server = app.listen(port, () => { const server = app.listen(port, () => {
......
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
const tasks = require('../tasks.json'); const tasks = require('../tasks.json');
function getTaskById(id) {
const taskId = parseInt(id, 10);
return tasks.find(task => task.id === taskId);
}
//fonction de récupération de toutes les tâches //fonction de récupération de toutes les tâches
function getAllTasks() { function getAllTasks() {
return tasks; return tasks;
...@@ -11,5 +16,6 @@ function getAllTasks() { ...@@ -11,5 +16,6 @@ function getAllTasks() {
//export des fonctions //export des fonctions
module.exports = { module.exports = {
getAllTasks getAllTasks,
getTaskById
}; };
...@@ -24,3 +24,22 @@ describe('Endpoints de base', () => { ...@@ -24,3 +24,22 @@ describe('Endpoints de base', () => {
}); });
}); });
describe('GET /api/tasks/:id', () => {
// Test pour un ID existant (par exemple, ID = 1)
test('devrait retourner la tâche correspondante pour un ID existant', async () => {
const res = await request(app).get('/api/tasks/1');
expect(res.statusCode).toEqual(200);
expect(res.body).toEqual({ id: 1, description: 'Apprendre Git', done: false });
});
// Test pour un ID inexistant (par exemple, ID = 999)
test('devrait retourner 404 pour un ID inexistant', async () => {
const res = await request(app).get('/api/tasks/999');
expect(res.statusCode).toEqual(404);
expect(res.body).toEqual({ error: 'Tâche non trouvée' });
});
});
\ No newline at end of file
//test unitaire des fonctions de service //test unitaire des fonctions de service
// Import de la fonction à tester // Import de la fonction à tester
const { getAllTasks } = require('../../src/taskService'); const { getAllTasks , getTaskById} = require('../../src/taskService');
//Test de la fonction de récupération de toutes les tâches. //Test de la fonction de récupération de toutes les tâches.
test('should return all tasks', () => { test('should return all tasks', () => {
...@@ -10,3 +10,11 @@ test('should return all tasks', () => { ...@@ -10,3 +10,11 @@ test('should return all tasks', () => {
expect(tasks.length).toBeGreaterThan(0); expect(tasks.length).toBeGreaterThan(0);
}); });
test('should return the correct task for a given id', () => {
const task = getTaskById(1);
expect(task).toEqual({ id: 1, description: 'Apprendre Git', done: false });
});
test('should return undefined for a non-existent task id', () => {
const task = getTaskById(999);
expect(task).toBeUndefined();});
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment