mongoose-crudl
Version:
CRUDL operations with Mongoose. (Create, Read, Update, Delete, List)
55 lines (43 loc) • 1.5 kB
JavaScript
import { describe, test, expect, beforeAll, afterAll, afterEach } from 'vitest'
import mongoose from 'mongoose'
import createMongooseMemoryServer from 'mongoose-memory'
import { deleteMany } from './index.js'
const mongooseMemoryServer = createMongooseMemoryServer(mongoose)
const TestModel = mongoose.model('Test', new mongoose.Schema({
name: { type: String, required: true },
refId: { type: mongoose.Types.ObjectId, required: false }
}, { timestamps: true }))
describe('deleteMany', () => {
beforeAll(async () => {
await mongooseMemoryServer.start()
await mongooseMemoryServer.connect('test-db')
})
afterEach(async () => {
await mongooseMemoryServer.purge()
})
afterAll(async () => {
await mongooseMemoryServer.disconnect()
await mongooseMemoryServer.stop()
})
test('Success by params', async () => {
const refId = new mongoose.Types.ObjectId()
const refId2 = new mongoose.Types.ObjectId()
const test = new TestModel({ name: 'test', refId })
await test.save()
const test2 = new TestModel({ name: 'test2', refId2 })
await test2.save()
const test3 = new TestModel({ name: 'test3', refId })
await test3.save()
const res = await deleteMany(TestModel, { refId })
expect(res).toEqual({
status: 200,
result: {
acknowledged: true,
deletedCount: 2
}
})
const entries = await TestModel.find({})
expect(entries.length).toBe(1)
expect(entries[0].name).toBe('test2')
})
})