From 02e9775ba74537d940fea4c824096bb1798574bc Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 17 Oct 2015 12:37:17 -0500 Subject: [PATCH] Set up new api test structure --- tasks/gulp-tests.js | 3 ++- test/api/get-status.js | 21 ++++++++++++++++++++ test/helpers/api.helper.js | 40 +++++++++++++++++++++++++++++++++++++- test/mocha.opts | 2 +- 4 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 test/api/get-status.js diff --git a/tasks/gulp-tests.js b/tasks/gulp-tests.js index b729afea6d..c8b9ed7912 100644 --- a/tasks/gulp-tests.js +++ b/tasks/gulp-tests.js @@ -284,7 +284,8 @@ gulp.task('test:e2e:safe', ['test:prepare'], (cb) => { }); gulp.task('test:api', ['test:startServer', 'test:prepare:mongo'], (done) => { - let mocha = new Mocha(); + require('../test/helpers/globals.helper'); + let mocha = new Mocha({reporter: 'spec'}); let tests = glob('./test/api/**/*.js'); tests.forEach((test) => { diff --git a/test/api/get-status.js b/test/api/get-status.js new file mode 100644 index 0000000000..f67399ece4 --- /dev/null +++ b/test/api/get-status.js @@ -0,0 +1,21 @@ +import {requester} from '../helpers/api.helper'; + +describe('Status', () => { + let api; + + beforeEach(() => { + api = requester(); + }); + + it('returns a status of up when server is up', (done) => { + api.get('/status') + .then((res) => { + expect(res.code).to.eql(200); + expect(res.body.status).to.eql('up'); + done(); + }) + .catch((err) => { + done(err); + }); + }); +}); diff --git a/test/helpers/api.helper.js b/test/helpers/api.helper.js index bf1e0b34ff..becc2f6274 100644 --- a/test/helpers/api.helper.js +++ b/test/helpers/api.helper.js @@ -1 +1,39 @@ -require('./globals.helper'); +import superagent from 'superagent'; + +export function requester(user={}) { + return { + get: _requestMaker(user, 'get'), + post: _requestMaker(user, 'post'), + put: _requestMaker(user, 'put'), + del: _requestMaker(user, 'del'), + } +} + +function _requestMaker(user, method) { + return (route, options={}) => { + return new Promise((resolve, reject) => { + let request = superagent[method](`http://localhost:3003/api/v2${route}`) + .accept('application/json'); + + if (user._id && user.apiToken) { + request + .set('x-api-user', user._id) + .set('x-api-key', user.apiToken); + } + + request + .query(options.query) + .send(options.send) + .end((err, response) => { + if (err) { return reject(err); } + + let res = { + code: response.statusCode, + body: response.body, + } + + resolve(res); + }); + }); + } +} diff --git a/test/mocha.opts b/test/mocha.opts index f79948733b..03db728cec 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -5,4 +5,4 @@ --growl --debug --globals io ---require test/helpers/globals.helper +--require ./test/helpers/globals.helper