子模块数组中的Mongoose怪异错误重复

时间:2018-01-07 03:59:11

标签: javascript node.js mongodb unit-testing mongoose

我正在使用mongoose测试几个模式,并且我在子模式上两次得到相同的错误。

这是我的模特:

const OrderSchema = new Schema({
  email: {
    type: String,
    required: true,
    validate: isEmail
  },
  order_code: {
    type: String,
    unique: true
  },
  status: {
    type: Number,
    required: true
  },
  products: [{
    product_id: {
      type: Schema.Types.ObjectId,
      rel: 'Product',
      required: true
    },
    quantity: {
      type: Number,
      required: true
    }
  }]
})

const Order = mongoose.model('Order', OrderSchema)

module.exports = Order

这是我对产品数组中数量错误的测试:

test('Should be invalid if malformed product', () => {
  const malformed = getValidOrder() // <- This just returns a valid order object
  malformed.products[0].quantity = 'whatup' // <- Setting up a wrong quantity

  const m = new Order( malformed )
  const v = m.validateSync()

  expect(howManyKeys(v.errors)).toBe(1) // <- here the test fails since there are two errors instead of one
})

我得到了这两个错误:products.0.quantityproducts.0.products.0.quantity,正如您所看到的那样,第二个错误只是一个非常奇怪的模式。

这是子模式的常见猫鼬模式还是Schema出了问题? 我知道子文档中的错误会通过阅读文档传递给父模式。

0 个答案:

没有答案