@gameroom/kit
Version:
Node kit for the Gameroom API
144 lines (139 loc) • 3.74 kB
JavaScript
const { faker } = require('@faker-js/faker'),
chai = require('chai')
const {
models: { Timecard, User }
} = require('../../')
const should = chai.should()
let object, user_id
describe('Timecard', () => {
describe('setup', () => {
it('should create objects for relationships', async () => {
let result, error
try {
result = await User.create({ email: faker.internet.email(), password: faker.random.word() })
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
result.should.be.a('object')
user_id = result.id
})
})
describe('Timecard.create()', () => {
it('should create an timecard', async () => {
let result, error
try {
result = await Timecard.create({ user_id, status: 4 })
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
result.should.be.a('object')
object = result
})
})
describe('Timecard.get()', () => {
it('should get array of timecards', async () => {
let result, error
try {
result = await Timecard.get()
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
result.should.be.a('array')
})
})
describe('Timecard.getAll()', () => {
it('should get array of all timecards', async () => {
let result, error
try {
result = await Timecard.getAll()
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
result.should.be.a('array')
})
})
describe('Timecard.find()', () => {
it('should find a timecard', async () => {
let result, error
try {
result = await Timecard.find(object, { view: 'full' })
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
result.should.be.a('object')
object = result
})
})
describe('Timecard keys', () => {
it('should match api and kit keys', async () => {
const raw = await Timecard.schema.adapter.find(Timecard.schema, object.id)
Object.keys(new Timecard()).sort().should.deep.equal(Object.keys(raw).sort())
})
})
// Broken
// describe('Timecard.update()', () => {
// it('should update a timecard', async () => {
// let result, error
// const update = Object.assign(new Timecard(), object)
// delete update.ended_at
// delete update.started_at
// try {
// result = await Timecard.update(update)
// } catch(err) {
// error = err
// }
// should.not.exist(error)
// should.exist(result)
// result.should.be.a('object')
// })
// })
describe('timecard.save()', () => {
it('should update one timecard', async () => {
let result, error
const update = Object.assign(new Timecard(), object)
delete update.ended_at
delete update.started_at
try {
result = await update.save()
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
result.should.be.a('object')
})
})
describe('Timecard.delete()', () => {
it('should delete one timecard', async () => {
let result, error
try {
result = await Timecard.delete(object)
} catch (err) {
error = err
}
should.not.exist(error)
should.exist(result)
})
})
describe('teardown', () => {
it('should delete the relationship objects', async () => {
let error
try {
await User.delete(user_id)
} catch (err) {
error = err
}
should.not.exist(error)
})
})
})