-
Notifications
You must be signed in to change notification settings - Fork 81
/
Copy pathorderbookSlice.test.ts
73 lines (68 loc) · 1.65 KB
/
orderbookSlice.test.ts
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
import reducer, { addAsks, addBids, addExistingState, OrderbookState } from './orderbookSlice'
test('should return the initial state', () => {
// @ts-ignore
expect(reducer(undefined, {})).toEqual(
{
market: 'PI_XBTUSD',
rawBids: [],
bids: [],
maxTotalBids: 0,
rawAsks: [],
asks: [],
maxTotalAsks: 0,
groupingSize: 0.5
}
);
});
test('should handle adding price levels', () => {
const previousState: OrderbookState = {
market: 'PI_XBTUSD',
rawBids: [],
bids: [],
maxTotalBids: 0,
rawAsks: [],
asks: [],
maxTotalAsks: 0,
groupingSize: 0.5
}
expect(reducer(previousState, addExistingState({
"product_id": "PI_XBTUSD",
asks: [[1000, 1], [1002, 1]],
bids: [[1000, 1], [1002, 1]]
}))).toEqual(
{
market: 'PI_XBTUSD',
rawBids: [[1000, 1], [1002, 1]],
bids: [[1000, 1, 1, 50], [1002, 1, 2, 100]],
maxTotalBids: 2,
rawAsks: [[1000, 1], [1002, 1]],
asks: [[1000, 1, 1, 50], [1002, 1, 2, 100]],
maxTotalAsks: 2,
groupingSize: 0.5
}
);
expect(reducer(previousState, addBids([[1000, 1], [1002, 1]]))).toEqual(
{
market: 'PI_XBTUSD',
rawBids: [],
bids: [[1000, 1, 1, 50], [1002, 1, 2, 100]],
maxTotalBids: 2,
rawAsks: [],
asks: [],
maxTotalAsks: 0,
groupingSize: 0.5
}
);
expect(reducer(previousState, addAsks([[1000, 1], [1002, 1]]))).toEqual(
{
market: 'PI_XBTUSD',
rawBids: [],
asks: [[1000, 1, 1, 50], [1002, 1, 2, 100]],
maxTotalBids: 0,
rawAsks: [],
bids: [],
maxTotalAsks: 2,
groupingSize: 0.5
}
);
});