Skip to content

Commit 9df8066

Browse files
author
davidrleonard
committed
Add tests for server and each series of redirect pairs
1 parent 923fdda commit 9df8066

File tree

4 files changed

+52
-18
lines changed

4 files changed

+52
-18
lines changed

Diff for: app.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ var startApp = function(cb) {
3737
var host = server.address().address;
3838
var port = server.address().port;
3939
console.log('App listening at port %s', port);
40-
cb(null,host,port);
40+
cb(null,host,port,this);
4141
});
4242
}
4343

Diff for: index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var app = require("./app");
22

3-
app(function(err,host,port){
3+
app(function(err,host,port,server){
44
console.log("We're good to go");
55
});

Diff for: package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@
2121
},
2222
"homepage": "https://github.com/codeforamerica/redirect",
2323
"dependencies": {
24+
"async": "^1.2.1",
2425
"consolidate": "^0.13.1",
2526
"ejs": "^2.3.1",
2627
"express": "^4.12.4",
27-
"request": "^2.58.0",
2828
"underscore": "^1.8.3"
29+
},
30+
"devDependencies": {
31+
"supertest": "^1.0.1",
32+
"request": "^2.58.0"
2933
}
3034
}

Diff for: tests/test.js

+45-15
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,49 @@
11
var assert = require("assert"),
2-
request = require("request"),
2+
request = require('supertest'),
3+
async = require("async"),
34
app = require("../app");
45

5-
// // Check that redirects are valid JSON
6-
// assert.doesNotThrow(
7-
// function(){
8-
// var redirects = require('../redirects.json');
9-
// },
10-
// "redirects.json should be valid JSON."
11-
// );
6+
// Check that redirects are valid JSON
7+
assert.doesNotThrow(
8+
function(){
9+
var redirects = require('../redirects.json');
10+
},
11+
"redirects.json should be valid JSON."
12+
);
1213

13-
app(function(err,host,port){
14-
request.get('http://localhost:3000', function (err, res, body){
15-
// expect(res.statusCode).to.equal(400);
16-
// expect(res.body).to.equal('wrong header');
17-
console.log(res.statusCode);
18-
});
19-
});
14+
// Run the server, make sure it actually works, and test all redirects
15+
app(function(err,host,port,server){
16+
var redirects = require('../redirects.json');
17+
async.parallel([
18+
function(cb){
19+
20+
request(server)
21+
.get('/')
22+
.expect(200)
23+
.end(function(err,res){
24+
assert.doesNotThrow(
25+
function(){ if (err) throw err; },
26+
"The root address should return 200 when accessed over http"
27+
);
28+
cb();
29+
});
30+
31+
},
32+
function(cb){
33+
34+
async.forEachOfSeries(redirects, function(val,key,cb){
35+
request(server)
36+
.get('/'+key)
37+
.expect(301)
38+
.end(function(err,res){
39+
assert.doesNotThrow(
40+
function(){ if (err) throw err; },
41+
"Each redirect pair should return a 301"
42+
);
43+
cb();
44+
});
45+
},function(err,res){ cb(); });
46+
47+
}
48+
],function(err,res){ server.close(); });
49+
});

0 commit comments

Comments
 (0)