/
operations.js
69 lines (55 loc) · 2.07 KB
/
operations.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
/** @format */
/**
* Internal dependencies.
*/
import { readTransactions, transactionsToResources } from '../../../api-spec/transactions/operations';
import { NAMESPACE } from '../../../constants';
describe( 'Transactions operations', () => {
describe( 'readTransactions()', () => {
const expectedUrl = `${ NAMESPACE }/payments/transactions`;
it( 'Returns a list with one promise when correct resource names are supplied', () => {
const mockData = [ {}, {}, {} ];
const expectedResolvedPromise = {
[ "transactions-list" ]: {
data: mockData,
},
};
const mockToResources = jest.fn();
mockToResources.mockReturnValue( expectedResolvedPromise );
const mockPromise = new Promise( () => mockData, () => {} );
const expectedPromises = [ mockPromise ];
const mockFetch = jest.fn();
mockFetch.mockReturnValue( mockPromise );
// Perform read operation.
const promises = readTransactions( [ 'transactions-list' ], mockFetch, mockToResources );
expect( mockFetch ).toHaveBeenCalledTimes( 1 );
expect( mockFetch ).toHaveBeenCalledWith( { path: expectedUrl } );
expect( promises ).toStrictEqual( expectedPromises );
promises[0].then( result => {
expect( mockToResources ).toHaveBeenCalledTimes( 1 );
expect( mockToResources ).toHaveBeenCalledWith( mockData );
expect( result ).toBe( expectedResolvedPromise );
} );
} );
it( 'Returns an empty list when wrong resource names are supplied', () => {
const expected = [];
const mockFetch = jest.fn();
// Perform read operation.
const promises = readTransactions( [ 'wrong', 'resource', 'names' ] );
expect( mockFetch ).not.toHaveBeenCalled();
expect( promises ).toStrictEqual( expected );
} );
} );
describe( 'transactionsToResources()', () => {
it( 'Transactions list is correctly converted to resources', () => {
const mockData = [ {}, {}, {} ];
const expected = {
[ 'transactions-list' ]: {
data: mockData,
},
};
const resources = transactionsToResources( mockData );
expect( resources ).toStrictEqual( expected );
} );
} );
} );