-
Notifications
You must be signed in to change notification settings - Fork 67
/
selectors.js
129 lines (97 loc) · 4.25 KB
/
selectors.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/** @format */
/**
* Internal dependencies.
*/
import transactionsSelectors from '../../../api-spec/transactions/selectors';
import { DEFAULT_REQUIREMENT } from '../../../constants';
describe( 'Transactions selectors', () => {
const expectedResourceName = 'transactions-list';
describe( 'getTransactions()', () => {
it( 'getTransactions before a read operation returns empty list', () => {
const expected = {};
const mockGetResource = jest.fn();
const mockRequireResource = jest.fn();
mockRequireResource.mockReturnValue( {} );
const transactions = transactionsSelectors.getTransactions( mockGetResource, mockRequireResource )();
expect( mockGetResource ).not.toHaveBeenCalled();
expect( mockRequireResource ).toHaveBeenCalledTimes( 1 );
expect( mockRequireResource ).toHaveBeenCalledWith( DEFAULT_REQUIREMENT, expectedResourceName );
expect( transactions ).toStrictEqual( expected );
} );
it( 'getTransactions after a read operation returns the expected transactions list', () => {
const expected = { data: [ {}, {}, {} ] };
const mockGetResource = jest.fn();
const mockRequireResource = jest.fn();
mockRequireResource.mockReturnValue( { data: expected } );
const transactions = transactionsSelectors.getTransactions( mockGetResource, mockRequireResource )();
expect( mockGetResource ).not.toHaveBeenCalled();
expect( mockRequireResource ).toHaveBeenCalledTimes( 1 );
expect( mockRequireResource ).toHaveBeenCalledWith( DEFAULT_REQUIREMENT, expectedResourceName );
expect( transactions ).toBe( expected );
} );
} );
describe( 'getTransactionsIsLoading()', () => {
it( "getTransactionsIsLoading returns false when a read operation isn't in flight", () => {
const expected = false;
const mockGetResource = jest.fn();
mockGetResource.mockReturnValue( {
lastRequested: 0,
lastReceived: 1,
} );
const isLoading = transactionsSelectors.getTransactionsIsLoading( mockGetResource )();
expect( mockGetResource ).toHaveBeenCalledTimes( 1 );
expect( mockGetResource ).toHaveBeenCalledWith( expectedResourceName );
expect( isLoading ).toStrictEqual( expected );
} );
it( 'getTransactionsIsLoading returns true when a read operation is in flight', () => {
const expected = true;
const mockGetResource = jest.fn();
mockGetResource.mockReturnValue( {
lastRequested: 1,
lastReceived: 0,
} );
const isLoading = transactionsSelectors.getTransactionsIsLoading( mockGetResource )();
expect( mockGetResource ).toHaveBeenCalledTimes( 1 );
expect( mockGetResource ).toHaveBeenCalledWith( expectedResourceName );
expect( isLoading ).toStrictEqual( expected );
} );
} );
describe( 'transactionsInitStatus()', () => {
it( 'Returns true when transactions are initialized', () => {
const expected = true;
const mockGetResource = jest.fn();
mockGetResource.mockReturnValue( {
lastRequested: 0,
lastReceived: 1,
} );
const initStatus = transactionsSelectors.transactionsInitStatus( mockGetResource )();
expect( mockGetResource ).toHaveBeenCalledTimes( 1 );
expect( mockGetResource ).toHaveBeenCalledWith( expectedResourceName );
expect( initStatus ).toBe( expected );
} );
it( "Returns false when transactions aren't initialized", () => {} );
} );
describe( 'showTransactionsPlaceholder()', () => {
it( "Returns true when transactions aren't initialized", () => {
const expected = true;
const mockGetResource = jest.fn();
mockGetResource.mockReturnValue( {} );
const showPlaceholder = transactionsSelectors.showTransactionsPlaceholder( mockGetResource )();
expect( mockGetResource ).toHaveBeenCalledTimes( 1 );
expect( mockGetResource ).toHaveBeenCalledWith( expectedResourceName );
expect( showPlaceholder ).toBe( expected );
} );
it( "Returns false when transactions are initialized", () => {
const expected = false;
const mockGetResource = jest.fn();
mockGetResource.mockReturnValue( {
lastRequested: 0,
lastReceived: 1,
} );
const showPlaceholder = transactionsSelectors.showTransactionsPlaceholder( mockGetResource )();
expect( mockGetResource ).toHaveBeenCalledTimes( 1 );
expect( mockGetResource ).toHaveBeenCalledWith( expectedResourceName );
expect( showPlaceholder ).toBe( expected );
} );
} );
} );