Skip to content

Commit

Permalink
tests: added 3 test cases for 200 result/200 tups delivery
Browse files Browse the repository at this point in the history
  • Loading branch information
jmishra17 committed Jul 22, 2015
1 parent 69a5921 commit 70a9210
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 22 deletions.
47 changes: 27 additions & 20 deletions apiServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,37 @@ let bodyParser = require('body-parser');
let morgan = require('morgan');
let wolframBot = require('./wolframBot');

module.exports = function(){
console.log('process.env -->', process.env);
let app = express();
let port = process.env.PORT || config.get('port');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(morgan('dev'));
console.log('process.env -->', process.env);
let app = express();
let port = process.env.PORT || config.get('port');

app.use('/',router());
// app.use(bodyParser());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(morgan('dev'));

let server = app.listen(port, function () {
console.log('Slack-Wolfram|Alpha listening on port ' + port);
});
app.use('/',router());

process.on('SIGINT', function() {
server.close();
process.exit();
});

process.on('SIGINT', function() {
server.close();
process.exit();
function router(){
var expressRouter = express.Router();
expressRouter.post('/wolframBot', wolframBot);
expressRouter.get('/someGet', function(req, res){
res.status(200).json({a:'result'});
});
return expressRouter;
}

function start(){
app.listen(port, function () {
console.log('Slack-Wolfram|Alpha listening on port ' + port);
});
}

function router(){
var expressRouter = express.Router();
expressRouter.post('/wolframBot', wolframBot);
return expressRouter;
exports.start = start;

}
exports.app = app;

};
2 changes: 1 addition & 1 deletion app.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ require('babel/register')({
optional: ['runtime', 'es7.asyncFunctions']
});
var apiServer = require('./apiServer');
apiServer();
apiServer.start();
3 changes: 3 additions & 0 deletions mocha-babel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
require('babel/register')({
optional: ['runtime', 'es7.asyncFunctions']
});
7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Slack with Wolfram|Alpha",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"test": "mocha --require mocha-babel",
"start": "node app.js"
},
"author": "Jasper Mishra <[email protected]> (https://www.linkedin.com/profile/view?id=168344449)",
Expand All @@ -20,5 +20,10 @@
"nconf": "^0.7.1",
"request": "^2.58.0",
"xml2js": "^0.4.9"
},
"devDependencies": {
"chai": "^3.2.0",
"mocha": "^2.2.5",
"supertest": "^1.0.1"
}
}
54 changes: 54 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import mocha from 'mocha';
import {assert, should, expect} from 'chai';
import request from 'supertest';
import apiServer from '../apiServer';

describe('Inegration tests', function(){
let appObj = apiServer.app;
describe('testing posts to wolfram server ', function(){
this.timeout(0); //disabling timeout coz Wolfram|Alpha takes way too long in comparison to Mocha's optimism
let textObj = {text: "wolfram parabola"};
it("posts 'wolfram parabola' and gets 200", function(done){
let textObj = {text: "wolfram parabola"};
request(appObj)
.post('/wolframBot')
.type('form')
.send(textObj)
.end( (err, res) => {
if(err) return done(err);
expect(res.body.attachments).to.exist;
expect(res.body.attachments).have.length.above(0);
done();
});
});

it("posts 'wofram What bands have recorded a version of Eleanor Rigby?' and gets 200 with response", function(done){
let textObj = {text: 'wolfram What bands have recorded a version of Eleanor Rigby?'};
request(appObj)
.post('/wolframBot')
.type('form')
.send(textObj)
.end(function(err, res){
if(err) return done(err);
expect(res.body.attachments).to.exist;
expect(res.body.attachments).have.length.above(0);
done();
});
});

it("post 'wofram wqruohsabfkasbfas and returns res.200 with tips response", function(done){
let textObj = {text: 'wqruohsabfkasbfas'};
request(appObj)
.post('/wolframBot')
.type('form')
.send(textObj)
.end(function(err, res){
if(err) return done(err);
expect(res.body.text).to.equal('Error while processing query');
done();
});
});
});
});


2 changes: 2 additions & 0 deletions wolframBot.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ let prequest = Promise.promisify(request);
let pParseString = Promise.promisify(parseString);

module.exports = function(req, res, next){
// console.log('req -->', req);
console.log('req.body ---->', req.body);
let triggerWord = req.body.trigger_word;
let configUsername = process.env.username || config.get('username');
let configTriggerWords = process.env.triggerWords || config.get('triggerWords');
Expand Down

0 comments on commit 70a9210

Please sign in to comment.