import request from 'supertest'; import app from '../../app'; describe('Teste de Integração Reserva', () => { const reservas = [ { "id_sala": 1, "id_usuario": 9, "turma": "2ºB Eletrônica", "hora_inicio": "2024-05-02T09:00:00.000Z", "hora_fim": "2024-05-02T11:50:00.000Z", "descricao": "Prática de laboratório", "id_reservante": 8 }, { "id_sala": 1, "id_usuario": 9, "turma": "3ºC Mecatrônica", "hora_inicio": "2024-05-03T14:00:00.000Z", "hora_fim": "2024-05-03T16:50:00.000Z", "descricao": "Aula teórica", "id_reservante": 8 }, { "id_sala": 1, "id_usuario": 9, "turma": "1ºD Informática", "hora_inicio": "2024-05-04T10:00:00.000Z", "hora_fim": "2024-05-04T12:50:00.000Z", "descricao": "Exercícios práticos", "id_reservante": 8 } ]; let token; beforeAll(async () => { const loginResponse = await request(app) .post('/login') .send({ siape: '248613', senha: 'Senha123@' }); token = loginResponse.body.data.token; }); describe('POST /ensalamento', () => { it('Deve criar múltiplas reservas com sucesso', async () => { const body = { ensalamento: reservas, sala: 4, dataInicio: "2025-02-07T13:00:00.000Z", dataFim: "2025-05-03T08:50:00.000Z" }; const response = await request(app) .post('/ensalamento') .set('Authorization', `Bearer ${token}`) .send(body); console.log(response); // expect(response.statusCode).toBe(201); expect(response.body).toHaveProperty('message', 'Ensalamento criado com sucesso!'); expect(response.body).toMatchObject({ code: 201, error: false, message: 'Ensalamento criado com sucesso!', data: { count: 39 } }); }); it('Deve retornar erro 400 se faltar campo obrigatório', async () => { const bodyIncompleto = { ensalamento: {tipo_invalido: 'deve ser um array'}, dataInicio: "2025-02-07T13:00:00.000Z", dataFim: "2025-05-03T08:50:00.000Z" }; const response = await request(app) .post('/ensalamento') .set('Authorization', `Bearer ${token}`) .send(bodyIncompleto); expect(response.statusCode).toBe(400); expect(response.body).toHaveProperty('message', 'O campo Ensalamento deve ser do typo array e não pode esta vasio'); }); }); });