UNPKG

go-jsbox-ona

Version:

A vumi jsbox helper library for interacting with Ona

77 lines (64 loc) 2.62 kB
var assert = require('assert'); var OnaFixtures = require('../../src').OnaFixtures; describe("fixtures.submit", function() { describe(".add", function() { it("should provide a default response", function() { var fixtures = new OnaFixtures(); fixtures.submit.add(); assert.deepEqual( fixtures.store[0].response.data, {reply: 'Successful submission'}); }); it("should use 201 as the default response code", function() { var fixtures = new OnaFixtures(); fixtures.submit.add({response: {}}); assert.equal(fixtures.store[0].response.code, 201); }); it("should use POST as the default method", function() { var fixtures = new OnaFixtures(); fixtures.submit.add({request: {}}); assert.equal(fixtures.store[0].request.method, 'POST'); }); it("should use a default url", function() { var fixtures = new OnaFixtures({url: 'http://foo.io'}); fixtures.submit.add({request: {}}); assert.equal( fixtures.store[0].request.url, 'http://foo.io/submissions'); }); it("should allow submission data to be given directly", function() { var fixtures = new OnaFixtures({url: 'foo.io'}); fixtures.submit.add({data: {foo: 'bar'}}); assert.deepEqual(fixtures.store[0].request.data, {foo: 'bar'}); }); it("should return the fixture", function() { var fixtures = new OnaFixtures(); assert.deepEqual([fixtures.submit.add()], fixtures.store); }); it("should join urls correctly", function() { var fixtures = new OnaFixtures(); fixtures.submit.add(); assert.equal( fixtures.store[0].request.url, "https://ona.io/api/v1/submissions"); }); }); describe(".add_error", function() { var fixture; var fixtures; beforeEach(function() { fixtures = new OnaFixtures(); fixture = fixtures.submit.add_error({ code: 403, error: ':(' }); }); it("should add an error response", function() { var response = fixtures.store[0].response ; assert.equal(response.code, 403); assert.deepEqual(response.data, {error: ':('}); }); it("should return the fixture", function() { assert.deepEqual([fixture], fixtures.store); }); }); });