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