gathering
Version:
A social event management platform
145 lines (90 loc) • 2.73 kB
text/coffeescript
sinon = require 'sinon'
sinon_chai = require 'sinon-chai'
chai = require 'chai'
should = do chai.should
chai.use sinon_chai
BaseCRUD = require '../../service/lib/base-crud.coffee'
Talk = require '../../service/models/talk.coffee'
CRUDCtrl = new BaseCRUD Talk
mock = require '../mock.coffee'
do require '../db.coffee'
describe 'CRUD', ->
describe '#create', ->
it 'returns promise and resolves it with created document', (done) ->
talk = mock.talk
success = (content) ->
content.should.exist
do done
failure = ->
CRUDCtrl.create talk
.then success, failure
it '''returns promise and rejects \
it with err if document to create is invalid''', (done) ->
talk = mock.invalid_talk
success = ->
failure = (err) ->
err.should.exist
do done
CRUDCtrl.create talk
.then success, failure
describe '#read', ->
it 'returns promise and resolves it with whole collection', (done) ->
mock.talks 10, (mocked) ->
success = (content) ->
content.length.should.equal mocked.length
do done
failure = ->
CRUDCtrl.read()
.then success, failure
describe '#get_by_id', ->
it 'returns promise and resolves it with found document', (done) ->
mock.talks 10, (mocked) ->
success = (found) ->
found.should.exist
do done
failure = ->
id = mocked[2]._id
CRUDCtrl.get_by_id id
.then success, failure
describe '#update', ->
it 'returns promise and resolves it with updated document', (done) ->
mock.talks 10, (mocked) ->
updated_talk = mock.updated_talk
id = mocked[2]._id
success = (updated) ->
updated.duration.should.equal updated_talk.duration
updated.topic.should.equal updated_talk.topic
do done
failure = (err)->
console.log err
do done
CRUDCtrl.update id, updated_talk
.then success, failure
it 'returns promise and rejects it if updates are invalid', (done) ->
mock.talks 10, (mocked) ->
invalid = mock.invalid_talk
id = mocked[2]._id
success = ->
failure = (err) ->
err.should.exist
do done
CRUDCtrl.update id, invalid
.then success, failure
describe '#delete', ->
it 'returns promise and resolves it with deleted document', (done) ->
mock.talks 10, (mocked) ->
id = mocked[2]._id
success = (deleted) ->
deleted.should.exist
do done
failure = ->
CRUDCtrl.delete id
.then success, failure
it 'returns promise and resolves it with \'null\' if document to delete is not found', (done) ->
id = new mock.ObjectId
success = (deleted) ->
should.not.exist deleted
do done
failure = ->
CRUDCtrl.delete id
.then success, failure