@jfln/marvin-db
Version:
biblioteca de objetos para normalizar o acesso a um banco mongo db
51 lines (42 loc) • 1.43 kB
text/typescript
import 'reflect-metadata'
import {EntityManager, MikroORM} from '@mikro-orm/core'
import {Answer} from '..'
import options from '../../mikro-orm.config'
describe('Answer Entity', () => {
let ormAnswer: MikroORM
let em: EntityManager
beforeAll(async () => {
ormAnswer = await MikroORM.init(options)
em = ormAnswer.em.fork()
})
afterAll(() => {
ormAnswer.close(true)
})
it('should be able to create an Answer', async () => {
const answer = new Answer('This is a test', '1234567890', '123456')
await em.persistAndFlush(answer)
expect(answer._id).toBeDefined()
})
it('should be able to find an Answer', async () => {
const answer = await em.findOne(Answer, {guildId: '123456'})
expect(answer).toBeDefined()
})
it('should be able to update an Answer', async () => {
const answer = await em.findOne(Answer, {guildId: '123456'})
expect(answer).toBeDefined()
if (answer) {
answer.answer = 'This is an updated test'
await em.persistAndFlush(answer)
expect(answer.answer).toEqual('This is an updated test')
}
})
it('should be able to delete an Answer', async () => {
const answer = await em.findOne(Answer, {guildId: '123456'})
expect(answer).toBeDefined()
if (answer) {
await em.removeAndFlush(answer)
const answer2 = await em.findOne(Answer, {guildId: '123456'})
expect(answer2).toBeNull()
}
})
})