-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtest.js
76 lines (61 loc) · 1.49 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const test = require('tape');
const middleware = require('./index.js');
function getState() {
return 'test';
}
function dispatch() {
return dispatch;
}
const mockedMiddlewareAPI = {
getState,
dispatch
};
const baseError = new Error('There was an error.');
const errorAction = {
type: 'ERROR'
};
function errorCase(t) {
function mockedNext() {
throw baseError;
}
t.plan(5);
function errorHandler(error, getState, action, dispatch) {
t.ok(
error.message === baseError.message,
'it should receive the expected error message in the `errorHandler`'
);
t.ok(
getState() === 'test',
'it should get the expected state from `getState()`'
);
t.ok(
action === errorAction,
'it should pass through the action to the handler'
);
t.ok(
dispatch === mockedMiddlewareAPI.dispatch,
'dispatch should be passed to the handler'
);
}
const error = middleware(errorHandler)(mockedMiddlewareAPI)(mockedNext)(errorAction);
t.ok(
error.message === baseError.message,
'it should return the expected error message'
);
}
function successCase(t) {
function mockedNext(action) {
return action;
}
t.plan(1);
const action = middleware(error => error)(mockedMiddlewareAPI)(mockedNext)({
type: 'TEST_ACTION'
});
t.equal(
action.type,
'TEST_ACTION',
'it should be the passed action'
);
}
test('Catch middleware - error case', errorCase);
test('Catch middleware - success case', successCase);