Skip to content

Commit

Permalink
deshacer cambios de tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fer4github committed Mar 31, 2024
1 parent 77aa683 commit bd2d7d7
Showing 1 changed file with 17 additions and 83 deletions.
100 changes: 17 additions & 83 deletions gatewayservice/gateway-service.test.js
Original file line number Diff line number Diff line change
@@ -1,106 +1,40 @@
// Importamos el módulo 'supertest' para realizar pruebas HTTP
const request = require('supertest');
// Importamos el módulo 'axios' para realizar solicitudes HTTP
const axios = require('axios');
// Importamos la aplicación de la puerta de enlace desde './gateway-service'
const app = require('./gateway-service');

// Importamos Locust para realizar pruebas de rendimiento
const { spawn } = require('child_process');

// Después de que se ejecuten todas las pruebas, cerramos la aplicación
afterAll(async () => {
app.close();
});
});

// Creamos un mock (simulación) del módulo 'axios' para controlar las respuestas simuladas
jest.mock('axios');

// Definimos un bloque de pruebas llamado 'Gateway Service'
describe('Gateway Service', () => {
// Simulamos respuestas de servicios externos para las rutas '/login' y '/adduser'
axios.post.mockImplementation((url, data) => {
if (url.endsWith('/login')) {
return Promise.resolve({ data: { token: 'mockedToken' } });
} else if (url.endsWith('/adduser')) {
return Promise.resolve({ data: { userId: 'mockedUserId' } });
}
});

// Prueba para la ruta '/adduser'
it('should forward add user request to user service', async () => {
const response = await request(app)
.post('/adduser')
.send({ username: 'newuser', password: 'newpassword' });

// Verificamos que la respuesta tenga un código de estado 200 y un ID de usuario
expect(response.statusCode).toBe(200);
expect(response.body.userId).toBe('mockedUserId');
});

// Prueba para el endpoint /pregunta
it('should forward question request to question service', async () => {
// Realizamos una solicitud GET al endpoint /pregunta
const response = await request(app)
.get('/pregunta');

// Verificamos que la respuesta tenga un código de estado 200 y contenga datos de pregunta
expect(response.statusCode).toBe(200);
expect(response.body).toHaveProperty('question'); // Asegúrate de ajustar esto según la respuesta esperada
// Mock responses from external services
axios.post.mockImplementation((url, data) => {
if (url.endsWith('/login')) {
return Promise.resolve({ data: { token: 'mockedToken' } });
} else if (url.endsWith('/adduser')) {
return Promise.resolve({ data: { userId: 'mockedUserId' } });
}
});

// Prueba de seguridad para el endpoint /login
it('should handle authentication securely', async () => {
// Datos de prueba para iniciar sesión
const loginData = {
username: 'testuser',
password: 'testpassword'
};

// Realizamos una solicitud POST al endpoint /login
// Test /login endpoint
it('should forward login request to auth service', async () => {
const response = await request(app)
.post('/login')
.send(loginData);
.post('/login')
.send({ username: 'testuser', password: 'testpassword' });

// Verificamos que la respuesta tenga un código de estado 200
expect(response.statusCode).toBe(200);
expect(response.body.token).toBe('mockedToken');
});

// Prueba de manejo de errores para el endpoint /login
it('should handle authentication errors gracefully', async () => {
// Datos de prueba para iniciar sesión (incorrectos)
const invalidLoginData = {
username: 'invaliduser',
password: 'invalidpassword'
};

// Realizamos una solicitud POST al endpoint /login con datos incorrectos
// Test /adduser endpoint
it('should forward add user request to user service', async () => {
const response = await request(app)
.post('/login')
.send(invalidLoginData);

// Verificamos que la respuesta tenga un código de estado 401 (Unauthorized)
expect(response.statusCode).toBe(401);
});

// Prueba de rendimiento para el endpoint /login utilizando Locust
it('should handle authentication securely under load', async () => {
// Iniciamos Locust en segundo plano
const locustProcess = spawn('locust', ['-f', 'path/to/locustfile.py']);

// Esperamos un tiempo para que Locust se inicie
await new Promise(resolve => setTimeout(resolve, 5000));
.post('/adduser')
.send({ username: 'newuser', password: 'newpassword' });

// Realizamos una solicitud POST al endpoint /login con múltiples usuarios simultáneos
const response = await request(app)
.post('/login')
.send({ username: 'testuser', password: 'testpassword' });

// Verificamos que la respuesta tenga un código de estado 200
expect(response.statusCode).toBe(200);

// Detenemos el proceso de Locust
locustProcess.kill();
expect(response.body.userId).toBe('mockedUserId');
});
});

0 comments on commit bd2d7d7

Please sign in to comment.