Skip to content

Commit d1a3337

Browse files
author
Tiago Azevedo
committed
Add errors & use request.arch object
1 parent 72d9139 commit d1a3337

File tree

3 files changed

+28
-9
lines changed

3 files changed

+28
-9
lines changed

index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
module.exports = function(req, res, next) {
2-
req.appState = req.appState || {};
2+
if (typeof req.arch === 'undefined') throw new Error('request.arch not defined. Use arch default middlewares first.');
3+
if (typeof req.arch.appState === 'undefined') throw new Error('request.arch.appState not defined. Use arch default middlewares first.');
34

4-
req.appState.requestInfo = {
5+
req.arch.appState.requestInfo = {
56
ip: req.ip
67
};
78

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "arch-request",
3-
"version": "1.0.1",
3+
"version": "1.1.0",
44
"description": "Express middleware for arch-server to update application state with request information",
55
"main": "index.js",
66
"scripts": {

spec/index-spec.js

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,42 @@ var middleware = require('../index');
33
describe("request middleware", function() {
44
it("puts the ip address in appState", function(done) {
55
var request = {
6-
appState: {},
6+
arch: {
7+
appState: {}
8+
},
79
ip: '127.0.0.1'
810
};
911

1012
middleware(request, null, function() {
11-
expect(request.appState.requestInfo.ip).toBe(request.ip);
13+
expect(request.arch.appState.requestInfo.ip).toBe(request.ip);
1214
done();
1315
});
1416
});
1517

16-
it("creates an appState object when none provided", function(done) {
18+
it("throws when arch not defined", function(done) {
1719
var request = {
1820
ip: '127.0.0.1'
1921
};
2022

21-
middleware(request, null, function() {
22-
expect(request.appState).toBeDefined();
23+
try {
24+
middleware(request, null, fail);
25+
} catch (e) {
26+
expect(e.message).toEqual('request.arch not defined. Use arch default middlewares first.')
27+
done();
28+
}
29+
});
30+
31+
it("throws when arch.appState not defined", function(done) {
32+
var request = {
33+
arch: {},
34+
ip: '127.0.0.1'
35+
};
36+
37+
try {
38+
middleware(request, null, fail);
39+
} catch (e) {
40+
expect(e.message).toEqual('request.arch.appState not defined. Use arch default middlewares first.')
2341
done();
24-
})
42+
}
2543
});
2644
});

0 commit comments

Comments
 (0)