clever
Version:
Node.js library for interacting with the Clever API
44 lines (37 loc) • 1.51 kB
text/coffeescript
async = require 'async'
fs = require 'fs'
assert = require 'assert'
_ = require 'underscore'
Clever = require "#{__dirname}/../index"
describe 'querystream', ->
before -> = Clever 'DEMO_KEY', 'https://api.clever.com'
it 'takes care of paging for you', (done) ->
40000
async.waterfall [
(cb_w) =>
query = .Section.find().count().exec cb_w
(count, cb_w) =>
query = .Section.find().limit(100)
stream = query.stream()
cur = 0
stream.on 'data', (section) =>
cur += 1
assert (section instanceof .Section), "Incorrect type on section object"
stream.on 'error', (err) -> assert false, "There shouldn't be an error: #{err}"
stream.on 'end', (err) ->
assert _.filter(query.links, (link) -> link.rel is 'next').length is 0,
'No next links should remain'
assert cur is count, "Only got #{cur}/#{count} entries!"
done()
], assert.ifError
it 'handles errors correctly', (done) ->
clever = Clever 'INVALID_KEY', 'https://api.clever.com'
query = clever.Section.find().limit(10)
stream = query.stream()
stream.on 'data', (section) ->
assert false, "no data should be returned for INVALID_KEY"
stream.on 'error', (err) ->
assert (err instanceof Error) and /received statusCode 401 instead of 200/.test(err)
stream.on 'end', (err) ->
assert.ifError err
done()