Tengo dos modelos que estoy probando en archivos individuales y en cada archivo que estoy usando beforeEach para borrar la base de datos y sembrar la base de datos. También estoy usando afterEach para soltar la base de datos y cerrar la conexión a MongoDB.
Recibo un error de MongoDB para una clave duplicada de mis usuarios, por lo que parece que beforeEach no se ejecuta perfectamente antes de cada prueba. Si ejecuto los archivos aislados, no hay problema. Es solo cuando ejecuto todo el conjunto de pruebas.
usuario.prueba.js
const mongoose = require('mongoose'); const request = require('supertest'); const app = require('../app'); const User = require('../models/user.model'); const userData = require('../db/data/userData'); // Valid User for Loggin In // { // username: 'Bcrypt User', // password: 'YECm9jCO8b', // }; beforeEach((done) => { mongoose.connect(process.env.DB_URI, () => { const seedDB = async () => { await User.deleteMany({}); await User.insertMany(userData); }; seedDB().then(() => { done(); }); }); }); afterEach((done) => { mongoose.connection.db.dropDatabase(() => { mongoose.connection.close(() => done()); }); });mensaje.prueba.js
const mongoose = require('mongoose'); const request = require('supertest'); const app = require('../app'); const User = require('../models/user.model'); const userData = require('../db/data/userData'); const messageData = require('../db/data/messageData'); const Message = require('../models/message.model'); const validUserAccount = { username: 'Bcrypt User', password: 'YECm9jCO8b', }; beforeEach((done) => { mongoose.connect(process.env.DB_URI, () => { const seedDB = async () => { await User.deleteMany({}); await User.insertMany(userData); await Message.deleteMany({}); await Message.insertMany(messageData); }; seedDB().then(() => { done(); }); }); }); afterEach((done) => { mongoose.connection.db.dropDatabase(() => { mongoose.connection.close(() => done()); }); });Hasta ahora, he intentado usar un jest.config.js y también intenté agregar config a package.json, pero parece que no puedo encontrar un archivo global para ejecutar antes de cada
¿Ha comprobado la opción setupFilesAfterEnv https://jestjs.io/docs/configuration#setupfilesafterenv-array ?