clever
Version:
Node.js library for interacting with the Clever API
61 lines (49 loc) • 1.75 kB
text/coffeescript
async = require 'async'
fs = require 'fs'
assert = require 'assert'
_ = require 'underscore'
Clever = require "#{__dirname}/../index"
nock = require 'nock'
_([
args: ["DEMO_KEY"]
,
args: ["DEMO_KEY", "https://fake_api.com"]
,
args: ["DEMO_KEY", "https://fake_api.com", {headers:"X-Dont-Taze-Me": "Bro"}]
]).each ({args}) ->
expected_api_path = args[1] or "https://api.clever.com"
expected_headers = args[2]?.headers or {}
describe "initialized with options #{args[0]}@#{expected_api_path} with headers: #{JSON.stringify expected_headers}", ->
generate_nock = (method) ->
scope = nock(expected_api_path)
scope.matchHeader(k, v) for k, v of expected_headers
scope.filteringPath(/.+/, "*")
scope[method]("*").reply(200, {data: {}, paging: {}, links: [rel: "self"]})
scope
before ->
@clever = Clever.apply(@, args)
describe 'query requests', ->
beforeEach ->
@scope = generate_nock("get")
afterEach ->
@scope.done()
nock.cleanAll()
it "make requests with the expected path and headers", (done) ->
@clever.District.find done
describe 'writeback requests', ->
beforeEach ->
@scope = generate_nock("post")
afterEach ->
@scope.done()
nock.cleanAll()
it "make requests with the expected path and headers", (done) ->
(new @clever.District({"name"})).save done
describe 'property requests', ->
beforeEach ->
@scope = generate_nock("get")
afterEach ->
@scope.done()
nock.cleanAll()
it "make requests with the expected path and headers", (done) ->
d = new @clever.District {"name"}
d.properties done