Olá!!!
Na ultima dúvida que postei aqui, no final afirmei algo que não está correto. Mais detalhes acessem esse link: https://cursos.alura.com.br/forum/topico-como-utilizar-o-express-load-em-teste-de-integracao-49874
Quando tenho apenas um aquivo .js de teste de integração tudo funciona que uma beleza. Já para um cenário onde tenho vários aquivos de teste de integração, os testes não finalizam.
Alguém já passou por isso?
Abaixo está o código:
test/integration/cliente.js
describe('Routes clientes', () => {
const express = require('../../config/express')();
const request = require('supertest')(express);
const assert = require('assert');
const defaultCliente = {
id: 1,
nome: 'Default Cliente',
email: "test@outlook.com",
telefone: "(12) 3204-5611"
};
beforeEach((done) => {
const _controller = new express.controllers.Cliente();
_controller.data
.destroy({ where: {} })
.then(() => _controller.data.create(defaultCliente))
.then(() => done());
});
describe('Route GET /cadastros/clientes', () => {
it('deveria retornar lista de clientes', (done) => {
request
.get('/cadastros/clientes')
.set('Accept', 'application/json')
.end((err, res) => {
assert.equal(res.statusCode, 200);
assert.equal(res.headers['content-type'], 'application/json; charset=utf-8');
done();
});
});
});
});
test/integration/fornecedor.js
describe('Routes fornecedores', () => {
const express = require('../../config/express')();
const request = require('supertest')(express);
const assert = require('assert');
const defaultFornecedor = {
id: 1,
nome: 'Default Fornecedor',
email: "test@outlook.com",
telefone: "(12) 3204-5611"
};
beforeEach((done) => {
const FornecedorController = new express.controllers.Fornecedor();
FornecedorController.data
.destroy({ where: {} })
.then(() => FornecedorController.data.create(defaultFornecedor))
.then(() => done());
});
describe('Route GET /cadastros/fornecedores', () => {
it('deveria retornar lista de fornecedores', (done) => {
request
.get('/cadastros/fornecedores')
.set('Accept', 'application/json')
.end((err, res) => {
assert.equal(res.statusCode, 200);
assert.equal(res.headers['content-type'], 'application/json; charset=utf-8');
done();
});
});
});
});
gulpfile.js
var gulp = require('gulp');
var mocha = require('gulp-mocha');
gulp.task('default', function () {
process.env.NODE_ENV = 'test';
gulp.src('test/integration/*.js')
.pipe(mocha({
timeout: 15000,
reporter: 'mocha-junit-reporter',
reporterOptions: {
mochaFile: './TEST-RESULTS.xml'
}
}));
});