Шут не закрывается из-за Mongoose.model - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь создать свой первый тест с шуткой.

user_model_test.js

const mongoose = require('mongoose')
const User = require('../user_model')


describe('user model tests', () => {
  beforeAll( async () => {
    await mongoose.connect('mongodb://localhost/supertest21')
  })
  afterAll( async () => { 
    await mongoose.connection.close()
  })

  it("has a module", () => {
    expect(User).toBeDefined()
  })
})

user_model.js

const mongoose = require('mongoose')
const Schema = mongoose.Schema

const userSchema = new Schema({
  username: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true
  }
})

const User = mongoose.model('User', userSchema, 'user')

module.exports = User

Когда я запускаю свой тест с --detectOpenHandles, я получаю эту ошибку:

Jest has detected the following 1 open handle potentially keeping Jest from exiting:

  ●  PROMISE

      17 | })
      18 |
    > 19 | const User = mongoose.model('User', userSchema, 'user')
         |                       ^
      20 |
      21 | module.exports = User

      at Function.init (node_modules/mongoose/lib/model.js:970:16)
      at Mongoose.Object.<anonymous>.Mongoose.model (node_modules/mongoose/lib/index.js:396:11)
      at Object.<anonymous> (libs/user/user_model.js:19:23)
      at Object.<anonymous> (libs/user/__tests__/user_model_test.js:3:14)

Я знаю, что есть что-то, что связано с инициализацией mongoose.model. Когда я передаю 4-й параметр в mongoose.model, чтобы пропустить инициализацию, ошибка обещания не отображается, но тест никогда не закрывается и не закрывается. показать больше ошибок. Есть идеи?

1 Ответ

0 голосов
/ 25 июля 2018

Попробуйте изменить await mongoose.connection.close() на await mongoose.disconnect();. Работал на меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...