-
Notifications
You must be signed in to change notification settings - Fork 787
/
organization.action.js
97 lines (86 loc) · 2.21 KB
/
organization.action.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
import configureStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import {
GET_ORG_REPOS_LOADING,
GET_ORG_REPOS_ERROR,
GET_ORG_REPOS,
} from '../../../src/organization/organization.constants';
import { fetchOrganizationRepos } from '../../../src/organization/organization.action';
import { v3 } from '../../../src/api';
const store = configureStore([thunk])({ auth: { accessToken: 'ABCXYZ' } });
jest.mock('../../../src/api', () => ({
v3: {
getJson: jest.fn(),
},
}));
describe('fetchOrganizationRepos()', () => {
afterEach(() => {
store.clearActions();
});
it('should return a success response', async () => {
const expectedData = { name: 'organization' };
v3.getJson.mockResolvedValueOnce(expectedData);
await store.dispatch(fetchOrganizationRepos(''));
expect(store.getActions()).toEqual(
expect.arrayContaining([
{
type: GET_ORG_REPOS_LOADING,
payload: true,
},
{
type: GET_ORG_REPOS_ERROR,
payload: '',
},
{
type: GET_ORG_REPOS,
payload: expectedData,
},
])
);
expect(store.getActions()).not.toEqual(
expect.arrayContaining([
{
type: GET_ORG_REPOS_LOADING,
payload: false,
},
{
type: GET_ORG_REPOS_ERROR,
payload: expectedData,
},
])
);
});
it('should return an error response', async () => {
const expectedData = { error: 'no organization' };
v3.getJson.mockRejectedValueOnce(expectedData);
await store.dispatch(fetchOrganizationRepos(''));
expect(store.getActions()).toEqual(
expect.arrayContaining([
{
type: GET_ORG_REPOS_LOADING,
payload: true,
},
{
type: GET_ORG_REPOS_LOADING,
payload: false,
},
{
type: GET_ORG_REPOS_ERROR,
payload: '',
},
{
type: GET_ORG_REPOS_ERROR,
payload: expectedData,
},
])
);
expect(store.getActions()).not.toEqual(
expect.arrayContaining([
{
type: GET_ORG_REPOS,
payload: expectedData,
},
])
);
});
});