diff --git a/package.json b/package.json index 0c0a994..4e52964 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "serve-favicon": "^2.0.1", "source": "0.0.3", "stream-browserify": "2.0.1", + "supertest": "^1.2.0", "uglify": "^0.1.5", "underscore": "1.8.3", "vinyl-buffer": "^1.0.0", @@ -79,7 +80,7 @@ "karma-browserify": "^4.4.0", "karma-chrome-launcher": "^0.2.1", "mockery": "^1.4.0", - "supertest": "1.1.0" + "supertest": "^1.2.0" }, "repository": { "type": "git", diff --git a/server/server.js b/server/server.js index d9bfbc9..96f450b 100644 --- a/server/server.js +++ b/server/server.js @@ -4,11 +4,11 @@ var loopback = require('loopback'); var app = module.exports = loopback(); -app.on('start', function onStart(){ +app.on('start', function onStart() { app.start(); }); -app.on('started', function onStarted(){ +app.on('started', function onStarted() { var baseUrl = getUrl(app); console.log('Web server listening at: %s', baseUrl); console.log('Get server status at: %s%s', baseUrl, '/status'); @@ -18,7 +18,7 @@ app.on('started', function onStarted(){ } }); -function getUrl(app){ +function getUrl(app) { if (app.get('url')) { return app.get('url').replace(/\/$/, ''); } else { @@ -33,7 +33,7 @@ function getUrl(app){ * @param options Options used during the boot process * @param callback */ -app.boot = function bootServer(options){ +app.boot = function bootServer(options) { var boot = require('loopback-boot'); // Pass boot options to app to allow it to set additional app properties @@ -49,12 +49,14 @@ app.boot = function bootServer(options){ * * @param options Options used override defaults */ -function getOptions(options){ +function getOptions(options) { // TODO: move to argv module that provides documentation var argv = require('minimist')(process.argv.slice(2)); var _ = require('underscore'); - if (options === undefined) options = {}; + if (options === undefined) { + options = {} + } // Handle common runtime overrides var cliOptions = { @@ -89,8 +91,8 @@ function getOptions(options){ /*** * Starts HTTP server */ -app.start = function startServer(){ - return app.listen(function(){ +app.start = function startServer() { + return app.listen(function() { app.emit('started'); }); }; diff --git a/spec/api/apitest.js b/spec/api/apitest.js new file mode 100644 index 0000000..6656522 --- /dev/null +++ b/spec/api/apitest.js @@ -0,0 +1,30 @@ +'use strict'; + +const request = require('supertest'); +const app = require('../../server/server'); +app.boot(); + +describe('GET /api/proposals', () => { + it('respond with json', (done) => { + request(app) + .get('/api/proposals') + .set('Accept', 'application/json') + .expect('Content-Type', /json/, done) + .expect(200, done); + }); +}); + +describe("POST /api/proposals/submit", () => { + it("Posts a new proposal to /api/proposals", (done) => { + let proposal = { + speakerName: "Danny", + speakerEmail: "danny@pham.com", + talkTitle: "Do this instead of that", + talkDescription: "That is so-so but this, this is revolutionary.", + } + request(app) + .post("/api/proposals/submit") + .send(proposal) + .expect(200, done); + }); +});