UNPKG

tm-apps-list-api

Version:

71 lines (61 loc) 2.22 kB
'use strict'; const assert = require('chai').assert; const db = require('tm-apps-db')(require('config').db); const R = require('ramda'); let rewire = require('rewire'); let app = rewire('../../src/server'); let request = require('supertest'); let config = require('config'); let nock = require('nock'); let server = request(app(config, void 0, db)); const createBasicArticle = id => { return { 'data': { 'attributes': { }, 'id': id } }; }; before(() => { nock('http://apps-test-endpoint.com') .persist() .get(/\/(?:nationals|regionals)\/\d+\/articles\/(\d+)/) .reply(200, uri => createBasicArticle(R.match(/\/(?:nationals|regionals)\/\d+\/articles\/(\d+)/, uri)[1])); nock('https://apps-curated-lists-test-endpoint.com') .persist() .get(/\/(?:nationals|regionals)\/71/) .reply(200, () => [1, 3, 2, 6, 4, 5]); }); after(() => { nock.restore(); }); describe('Curated Lists Component', function () { this.timeout(6000); it('Gets the 6 articles in curated list 71', done => { server .get('/nationals/2/curated-lists/71') .end((err, res) => { assert.equal(res.header['content-type'], 'application/json; charset=utf-8'); assert.equal(res.body.data.type, 'articles'); assert.equal(res.body.included.length, 6); const included = res.body.included; assert.equal(included[0].data.id, 1); assert.equal(included[1].data.id, 3); assert.equal(included[2].data.id, 2); assert.equal(included[3].data.id, 6); assert.equal(included[4].data.id, 4); assert.equal(included[5].data.id, 5); done(); }); }); it('Handles 404s correctly', done => { server .get('/nationals/2/curated-lists/6814768416841') .end((err, res) => { assert.equal(res.body.message, 'No curated lists found for list /nationals/6814768416841'); assert.equal(res.body.code, 'NotFoundError'); done(); }); }); });