UNPKG

2.05 kBtext/coffeescriptView Raw
1_ = require 'underscore'
2assert = require 'assert'
3async = require 'async'
4Clever = require "#{__dirname}/../index"
5highland = require 'highland'
6
7describe "require('clever/mock') [API KEY] [MOCK DATA DIR]", ->
8 before ->
9 @clever = require("#{__dirname}/../mock") 'api key', "#{__dirname}/mock_data"
10
11 it "supports streaming GETs", (done) ->
12 highland(@clever.Student.find().stream()).invoke("toJSON").collect().toCallback (err, data) ->
13 assert.ifError err
14 assert.deepEqual data, require("#{__dirname}/mock_data/students")
15 done()
16
17 it "supports count", (done) ->
18 @clever.Student.find().count().exec (err, count) ->
19 assert.ifError err
20 assert.equal count, require("#{__dirname}/mock_data/students").length
21 done()
22
23 it "supports non-streaming GETs", (done) ->
24 @clever.Student.find().exec (err, data) ->
25 assert.ifError err
26 assert.deepEqual _(data).invoke('toJSON'), require("#{__dirname}/mock_data/students")
27 done()
28
29 it "deep copies data", (done) ->
30 async.waterfall [
31 (cb_wf) =>
32 @clever.Student.find().exec (err, students) ->
33 assert.ifError err
34 name = students[0].get 'name'
35 assert.equal name.first, "John"
36 name.first = 'WRONG NAME'
37 cb_wf()
38 (cb_wf) =>
39 @clever.Student.find().exec (err, students) ->
40 assert.ifError err
41 name = students[0].get 'name'
42 assert.equal name.first, "John"
43 cb_wf()
44 ], done
45
46 describe 'findById', ->
47 _.each ['51a5a56f4867bbdf51054055', '51a5a56f4867bbdf51054054'], (id) ->
48 it "finds a student", (done) ->
49 @clever.Student.findById id, (err, student) ->
50 assert.ifError err
51 assert.equal student.get('id'), id
52 done()
53
54 it "returns undefined if the id is not found", (done) ->
55 @clever.Student.findById 'not an existing id', (err, student) ->
56 assert.ifError err
57 assert not student, 'Expected student to be undefined'
58 done()