Add integration tests for CI (#78)

Add integration tests for Heroku CI
main
Jeremy Morrell 7 years ago committed by GitHub
parent 1ea3ef7333
commit b393814eee

@ -16,5 +16,3 @@ app.get('/', function(request, response) {
app.listen(app.get('port'), function() {
console.log('Node app is running on port', app.get('port'));
});

@ -7,12 +7,17 @@
},
"main": "index.js",
"scripts": {
"start": "node index.js"
"start": "node index.js",
"test": "node test.js"
},
"dependencies": {
"ejs": "2.5.6",
"express": "4.15.2"
},
"devDependencies": {
"request": "^2.81.0",
"tape": "^4.7.0"
},
"repository": {
"type": "git",
"url": "https://github.com/heroku/node-js-getting-started"

@ -0,0 +1,28 @@
const { spawn } = require('child_process');
const request = require('request');
const test = require('tape');
// Start the app
const env = Object.assign({}, process.env, {PORT: 5000});
const child = spawn('node', ['index.js'], {env});
test('responds to requests', (t) => {
t.plan(4);
// Wait until the server is ready
child.stdout.on('data', _ => {
// Make a request to our app
request('http://127.0.0.1:5000', (error, response, body) => {
// stop the server
child.kill();
// No error
t.false(error);
// Successful response
t.equal(response.statusCode, 200);
// Assert content checks
t.notEqual(body.indexOf("<title>Node.js Getting Started on Heroku</title>"), -1);
t.notEqual(body.indexOf("Getting Started with Node on Heroku"), -1);
});
});
});
Loading…
Cancel
Save