Это моя модель актера.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ActorSchema = new Schema({
name: {
type:String,
required:true,
minlength: [3, 'Actor Name must be at least 3 characters.'],
},
imdb_url:{
type:String,
required:true,
}
});
module.exports = mongoose.model('actors', ActorSchema);
Это мой тестовый файл.
const request = require('supertest')
const Actor = require('../../models/actor')
let server;
describe('/actors', () => {
beforeEach( () => { server = require('../../app'); });
afterEach( () => { server.close() });
describe('GET /', () =>{
it("should return all actors", async () => {
const res = await request(server).get('/admin/actors');
expect(1).toBe(1);
})
})
})
Итак, в тестовом файле я получил это: require('../../app');
, который выполняется app.js
код, который имеет эту строку require("./startup/routes")(app)
и в маршрутах, мне требуются модели.
После запуска теста npm он говорит:
OverwriteModelError: Невозможно перезаписать actors
модель после компиляции.
Как мне решить эту проблему?
Я понимаю, что требование для модели актера происходит дважды, но из-за кеширования модуля модуль модели актера должен выполняться только один раз, но я предполагаю, что он выполняется дважды.