From 0253f5ce3391c628249d3cf9be1f3b3f44748c97 Mon Sep 17 00:00:00 2001 From: UO283535 Date: Tue, 12 Mar 2024 22:13:38 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1ado=20nuevo=20tests=20de=20posibles=20er?= =?UTF-8?q?rores=20para=20mejorar=20el=20covered?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gatewayservice/gateway-service.test.js | 79 +++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/gatewayservice/gateway-service.test.js b/gatewayservice/gateway-service.test.js index bd470998..4ce96c75 100644 --- a/gatewayservice/gateway-service.test.js +++ b/gatewayservice/gateway-service.test.js @@ -135,7 +135,84 @@ it('should perform the getQuestion request', async () => { }); + it('should handle authentication error', async () => { + const authError = new Error('Authentication failed'); + authError.response = { + status: 401, + data: { error: 'Invalid credentials' }, + }; + + // Simula un error en la llamada al servicio de autenticación + axios.post.mockImplementationOnce(() => Promise.reject(authError)); + + // Realiza la solicitud al endpoint + const response = await request(app).post('/login').send({ /* datos de autenticación */ }); + + // Verifica que la respuesta tenga un código de estado 401 + expect(response.statusCode).toBe(401); + expect(response.body.error).toBe('Invalid credentials'); + }); + it('should handle error when add user', async () => { + const questionServiceUrl = 'http://localhost:8003/generateQuestions'; + const errorMessage = 'Network Error'; + axios.get.mockImplementationOnce(() => Promise.reject(new Error(errorMessage))); + }); + + + it('should handle authentication error', async () => { + const authError = new Error('Authentication failed'); + authError.response = { + status: 401, + data: { error: 'Invalid credentials' }, + }; + + // Simula un error en la llamada al servicio de autenticación + axios.post.mockImplementationOnce(() => Promise.reject(authError)); + + // Realiza la solicitud al endpoint + const response = await request(app).post('/adduser').send({ /* datos de autenticación */ }); + + // Verifica que la respuesta tenga un código de estado 401 + expect(response.statusCode).toBe(401); + expect(response.body.error).toBe('Invalid credentials'); + }); +//Los siguientes dos test no pasan porq exceden el tiempo de espera. +/** + it('should handle error from GenerarPregunta', async () => { + const questionServiceUrl = 'http://localhost:8003/generateQuestions'; + // Simula un error en la ejecución de GenerarPregunta + const errorMessage = 'Error al generar preguntas'; + axios.get.mockRejectedValueOnce(new Error(errorMessage)); + + // Realiza la solicitud al endpoint + const response = await request(app).get('/generateQuestions').send(); + + // Verifica que la respuesta tenga un código de estado 500 + expect(response.statusCode).toBe(500); + expect(response.body.error).toBe(errorMessage); + }); - + it('should forward get question request to question generate service', async () => { + const questionServiceUrl = 'http://localhost:8003/generateQuestions'; + const expectedQuestion = '¿Cuál es la capital de Francia?'; + const expectedOptions = ['Berlin', 'Paris', 'Londres', 'Madrid']; + const expectedCorrectAnswer = 'Helsinki'; + + // Simula una llamada exitosa al servicio de generación de preguntas + axios.get.mockImplementationOnce(() => Promise.resolve({ data })); + + // Realiza la solicitud al endpoint + const response = await request(app).get('/generateQuestions').send(); + + // Verifica que la respuesta tenga un código de estado 200 + expect(response.statusCode).toBe(200); + + // Verifica que la pregunta y las opciones sean correctas + expect(response.body.pregunta).toBe(expectedQuestion); + expect(response.body.respuestas).toEqual(expect.arrayContaining(expectedOptions)); + expect(response.body.correcta).toBe(expectedCorrectAnswer); + }); */ + + });