Skip to content

Commit 12cecf7

Browse files
committed
create test utils
1 parent c140f47 commit 12cecf7

7 files changed

+74
-147
lines changed

__tests__/ReactRelayFragmentContainer-test.tsx

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,7 @@
1515
import * as React from 'react';
1616
import * as ReactTestRenderer from 'react-test-renderer';
1717
import { useQuery, useFragment, RelayEnvironmentProvider, useRelayEnvironment, NETWORK_ONLY } from '../src';
18-
19-
function createHooks(component, options?: any) {
20-
let result;
21-
ReactTestRenderer.act(() => {
22-
result = ReactTestRenderer.create(component, options);
23-
jest.runAllImmediates();
24-
});
25-
return result;
26-
}
27-
28-
function instanceAct(instance, props) {
29-
ReactTestRenderer.act(() => {
30-
instance.getInstance().setProps(props);
31-
});
32-
}
18+
import { createHooks, instanceAct } from './utils';
3319

3420
const ReactRelayFragmentContainer = {
3521
createContainer: (Component, spec) => (props) => {

__tests__/ReactRelayPaginationContainer-test.tsx

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,7 @@ import * as React from 'react';
1616
import * as ReactTestRenderer from 'react-test-renderer';
1717
import { usePagination, RelayEnvironmentProvider, useRelayEnvironment } from '../src';
1818
import { forceCache } from '../src/Utils';
19-
20-
function createHooks(component, options?: any) {
21-
let result;
22-
ReactTestRenderer.act(() => {
23-
result = ReactTestRenderer.create(component, options);
24-
jest.runAllImmediates();
25-
});
26-
return result;
27-
}
28-
29-
function instanceAct(instance, props) {
30-
ReactTestRenderer.act(() => {
31-
instance.getInstance().setProps(props);
32-
});
33-
}
34-
35-
function envResolveAct(environment, query, response) {
36-
ReactTestRenderer.act(() => {
37-
environment.mock.resolve(query, response);
38-
//jest.runAllImmediates();
39-
});
40-
}
19+
import { createHooks, instanceAct, envResolveAct } from './utils';
4120

4221
const ReactRelayPaginationContainer = {
4322
createContainer: (Component, spec, connectionConfigs) => (props: any) => {

__tests__/ReactRelayQueryRenderer-test.tsx

Lines changed: 35 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,9 @@ import { useQuery, RelayEnvironmentProvider, NETWORK_ONLY } from '../src';
2020

2121
import * as ReactTestRenderer from 'react-test-renderer';
2222

23-
//import readContext from "react-relay/lib/readContext";
24-
25-
function createHooks(component, options?: any) {
26-
let result;
27-
ReactTestRenderer.act(() => {
28-
result = ReactTestRenderer.create(component, options);
29-
jest.runAllImmediates();
30-
});
31-
return result;
32-
}
33-
34-
function envResolveAct(environment, query, response) {
35-
ReactTestRenderer.act(() => {
36-
environment.mock.resolve(query, response);
37-
//jest.runAllImmediates();
38-
});
39-
}
23+
import { createHooks, instanceAct, envResolveAct } from './utils';
4024

41-
function rendererActProp(renderer, props) {
42-
ReactTestRenderer.act(() => {
43-
renderer.getInstance().setProps(props);
44-
});
45-
}
25+
//import readContext from "react-relay/lib/readContext";
4626

4727
import {
4828
createOperationDescriptor,
@@ -475,7 +455,7 @@ describe('ReactRelayQueryRenderer', () => {
475455
environment.mockClear();
476456
render.mockClear();
477457

478-
rendererActProp(renderer, {
458+
instanceAct(renderer, {
479459
environment,
480460
query: TestQuery,
481461
render,
@@ -900,13 +880,13 @@ describe('ReactRelayQueryRenderer', () => {
900880
});
901881
render.mockClear();
902882

903-
rendererActProp(renderer, {
883+
instanceAct(renderer, {
904884
variables: { id: '5' },
905885
});
906886
expect(environment.execute).toBeCalledTimes(2);
907887
expect(pendingRequests.length).toEqual(2);
908888

909-
rendererActProp(renderer, {
889+
instanceAct(renderer, {
910890
variables: { id: '6' },
911891
});
912892
expect(environment.execute).toBeCalledTimes(3);
@@ -1154,7 +1134,7 @@ describe('ReactRelayQueryRenderer', () => {
11541134
envResolveAct(environment, TestQuery, response);
11551135
environment = createMockEnvironment();
11561136
const previousContext = relayContext;
1157-
rendererActProp(renderer, {
1137+
instanceAct(renderer, {
11581138
environment,
11591139
query: TestQuery,
11601140
render,
@@ -1180,7 +1160,7 @@ describe('ReactRelayQueryRenderer', () => {
11801160
envResolveAct(environment, TestQuery, response);
11811161
TestQuery = { ...TestQuery };
11821162
const previousContext = relayContext;
1183-
rendererActProp(renderer, {
1163+
instanceAct(renderer, {
11841164
environment,
11851165
query: TestQuery,
11861166
render,
@@ -1206,7 +1186,7 @@ describe('ReactRelayQueryRenderer', () => {
12061186
envResolveAct(environment, TestQuery, response);
12071187
variables = {};
12081188
const previousContext = relayContext;
1209-
rendererActProp(renderer, {
1189+
instanceAct(renderer, {
12101190
environment,
12111191
query: TestQuery,
12121192
render,
@@ -1260,7 +1240,7 @@ describe('ReactRelayQueryRenderer', () => {
12601240
envResolveAct(environment, TestQuery, response);
12611241
variables = simpleClone(variables);
12621242
const previousContext = relayContext;
1263-
rendererActProp(renderer, {
1243+
instanceAct(renderer, {
12641244
environment,
12651245
query: TestQuery,
12661246
render,
@@ -1295,7 +1275,7 @@ describe('ReactRelayQueryRenderer', () => {
12951275
render.mockClear();
12961276

12971277
// "update" with all === props
1298-
rendererActProp(renderer, {
1278+
instanceAct(renderer, {
12991279
environment,
13001280
query: TestQuery,
13011281
render,
@@ -1322,7 +1302,7 @@ describe('ReactRelayQueryRenderer', () => {
13221302

13231303
// Update with equivalent variables
13241304
variables = { foo: [1] };
1325-
rendererActProp(renderer, {
1305+
instanceAct(renderer, {
13261306
environment,
13271307
query: TestQuery,
13281308
render,
@@ -1339,7 +1319,7 @@ describe('ReactRelayQueryRenderer', () => {
13391319

13401320
// update with new render prop
13411321
render = jest.fn(() => <div />);
1342-
rendererActProp(renderer, {
1322+
instanceAct(renderer, {
13431323
environment,
13441324
query: TestQuery,
13451325
render,
@@ -1361,7 +1341,7 @@ describe('ReactRelayQueryRenderer', () => {
13611341
// Update with a different environment
13621342
environment.mockClear();
13631343
environment = createMockEnvironment();
1364-
rendererActProp(renderer, {
1344+
instanceAct(renderer, {
13651345
environment,
13661346
query: TestQuery,
13671347
render,
@@ -1383,7 +1363,7 @@ describe('ReactRelayQueryRenderer', () => {
13831363

13841364
// Update with different variables
13851365
variables = { id: 'beast' };
1386-
rendererActProp(renderer, {
1366+
instanceAct(renderer, {
13871367
environment,
13881368
query: TestQuery,
13891369
render,
@@ -1406,7 +1386,7 @@ describe('ReactRelayQueryRenderer', () => {
14061386
// Update with different variables
14071387
variables = {}; // no `id`
14081388
const expectedVariables = { id: '<default>' };
1409-
rendererActProp(renderer, {
1389+
instanceAct(renderer, {
14101390
environment,
14111391
query: TestQuery,
14121392
render,
@@ -1426,7 +1406,7 @@ describe('ReactRelayQueryRenderer', () => {
14261406
environment.mockClear();
14271407
render.mockClear();
14281408

1429-
rendererActProp(renderer, {
1409+
instanceAct(renderer, {
14301410
cacheConfig,
14311411
environment,
14321412
query: NextQuery,
@@ -1453,7 +1433,7 @@ describe('ReactRelayQueryRenderer', () => {
14531433
render.mockClear();
14541434
14551435
// Update with a null query
1456-
rendererActProp(renderer, {
1436+
instanceAct(renderer, {
14571437
cacheConfig,
14581438
environment,
14591439
query: null,
@@ -1722,22 +1702,22 @@ describe('ReactRelayQueryRenderer', () => {
17221702
it('cancels the pending fetch', () => {
17231703
const subscription = environment.execute.mock.subscriptions[0];
17241704
expect(subscription.closed).toBe(false);
1725-
rendererActProp(renderer, nextProps);
1705+
instanceAct(renderer, nextProps);
17261706
expect(subscription.closed).toBe(true);
17271707
});
17281708

17291709
it('releases the pending selection', () => {
17301710
envResolveAct(environment, TestQuery, response);
17311711
const disposeHold = environment.retain.mock.dispose;
17321712
expect(disposeHold).not.toBeCalled();
1733-
rendererActProp(renderer, nextProps);
1713+
instanceAct(renderer, nextProps);
17341714
envResolveAct(environment, NextQuery, response);
17351715
expect(disposeHold).toBeCalled();
17361716
});
17371717

17381718
it('retains the new selection', () => {
17391719
environment.mockClear();
1740-
rendererActProp(renderer, nextProps);
1720+
instanceAct(renderer, nextProps);
17411721
envResolveAct(environment, NextQuery, response);
17421722
expect(environment.retain.mock.calls[0][0].root.dataID).toBe('client:root');
17431723
expect(environment.retain.mock.calls[0][0].root.node).toBe(NextQuery.operation);
@@ -1746,7 +1726,7 @@ describe('ReactRelayQueryRenderer', () => {
17461726

17471727
it('renders a pending state', () => {
17481728
render.mockClear();
1749-
rendererActProp(renderer, nextProps);
1729+
instanceAct(renderer, nextProps);
17501730
expect().loadingRendered();
17511731
});
17521732

@@ -1761,7 +1741,7 @@ describe('ReactRelayQueryRenderer', () => {
17611741
render.mockClear();
17621742
17631743
// Update with a null query
1764-
rendererActProp(renderer, {
1744+
instanceAct(renderer, {
17651745
cacheConfig,
17661746
environment,
17671747
query: null,
@@ -1809,14 +1789,14 @@ describe('ReactRelayQueryRenderer', () => {
18091789

18101790
it('fetches the new query', () => {
18111791
environment.mockClear();
1812-
rendererActProp(renderer, nextProps);
1792+
instanceAct(renderer, nextProps);
18131793
expect(environment.mock.isLoading(NextQuery, variables, cacheConfig)).toBe(true);
18141794
});
18151795

18161796
it('retains the new selection', () => {
18171797
expect.assertions(5);
18181798
environment.mockClear();
1819-
rendererActProp(renderer, nextProps);
1799+
instanceAct(renderer, nextProps);
18201800
envResolveAct(environment, NextQuery, {
18211801
data: {
18221802
node: null,
@@ -1830,14 +1810,14 @@ describe('ReactRelayQueryRenderer', () => {
18301810
});
18311811

18321812
it('renders the pending state', () => {
1833-
rendererActProp(renderer, nextProps);
1813+
instanceAct(renderer, nextProps);
18341814
expect().loadingRendered();
18351815
});
18361816

18371817
it('publishes and notifies the store with changes', () => {
18381818
expect.assertions(2);
18391819
environment.mockClear();
1840-
rendererActProp(renderer, nextProps);
1820+
instanceAct(renderer, nextProps);
18411821
envResolveAct(environment, NextQuery, response);
18421822
expect(store.publish).toBeCalled();
18431823
expect(store.notify).toBeCalled();
@@ -1880,21 +1860,21 @@ describe('ReactRelayQueryRenderer', () => {
18801860
it('disposes the root fragment subscription', () => {
18811861
const disposeUpdate = environment.subscribe.mock.dispose;
18821862
expect(disposeUpdate).not.toBeCalled();
1883-
rendererActProp(renderer, nextProps);
1863+
instanceAct(renderer, nextProps);
18841864
expect(disposeUpdate).toBeCalled();
18851865
});
18861866

18871867
it('fetches the new query', () => {
18881868
environment.mockClear();
1889-
rendererActProp(renderer, nextProps);
1869+
instanceAct(renderer, nextProps);
18901870
expect(environment.mock.isLoading(NextQuery, variables, cacheConfig)).toBe(true);
18911871
});
18921872

18931873
it('disposes the previous selection and retains the new one', () => {
18941874
expect.assertions(6);
18951875
const prevDispose = environment.retain.mock.dispose;
18961876
environment.mockClear();
1897-
rendererActProp(renderer, nextProps);
1877+
instanceAct(renderer, nextProps);
18981878
envResolveAct(environment, NextQuery, {
18991879
data: {
19001880
node: null,
@@ -1910,14 +1890,14 @@ describe('ReactRelayQueryRenderer', () => {
19101890

19111891
it('renders the pending and previous state', () => {
19121892
environment.mockClear();
1913-
rendererActProp(renderer, nextProps);
1893+
instanceAct(renderer, nextProps);
19141894
expect().loadingRendered();
19151895
});
19161896

19171897
it('publishes and notifies the store with changes', () => {
19181898
expect.assertions(2);
19191899
environment.mockClear();
1920-
rendererActProp(renderer, nextProps);
1900+
instanceAct(renderer, nextProps);
19211901
envResolveAct(environment, NextQuery, response);
19221902
expect(store.publish).toBeCalled();
19231903
expect(store.notify).toBeCalled();
@@ -2016,7 +1996,7 @@ describe('ReactRelayQueryRenderer', () => {
20161996
expect(disposeHold).not.toBeCalled();
20171997
environment.mock.reject(TestQuery, new Error("fail"));
20181998
expect(disposeHold).not.toBeCalled();
2019-
rendererActProp(renderer, nextProps);
1999+
instanceAct(renderer, nextProps);
20202000
expect(disposeHold).not.toBeCalled();
20212001
envResolveAct(environment, NextQuery, response);
20222002
expect(disposeHold).toBeCalled();
@@ -2085,7 +2065,7 @@ describe('ReactRelayQueryRenderer', () => {
20852065
envResolveAct(environment, TestQuery, response);
20862066
environment.mockClear();
20872067

2088-
rendererActProp(renderer, {
2068+
instanceAct(renderer, {
20892069
cacheConfig,
20902070
environment,
20912071
query: TestQuery,
@@ -2235,7 +2215,7 @@ describe('ReactRelayQueryRenderer', () => {
22352215
render.mockClear();
22362216
environment.mockClear();
22372217

2238-
rendererActProp(renderer, {
2218+
instanceAct(renderer, {
22392219
environment,
22402220
query: TestQuery,
22412221
render,
@@ -2251,7 +2231,7 @@ describe('ReactRelayQueryRenderer', () => {
22512231
environment.mockClear();
22522232
render.mockClear();
22532233

2254-
rendererActProp(renderer, {
2234+
instanceAct(renderer, {
22552235
environment,
22562236
query: TestQuery,
22572237
render,

__tests__/ReactRelayRefetchContainer-test.tsx

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,7 @@ import * as ReactTestRenderer from 'react-test-renderer';
1616
import { useRefetchable as useRefetch, RelayEnvironmentProvider, useRelayEnvironment } from '../src';
1717
import { forceCache } from '../src/Utils';
1818

19-
function createHooks(component, options?: any) {
20-
let result;
21-
ReactTestRenderer.act(() => {
22-
result = ReactTestRenderer.create(component, options);
23-
//jest.runAllImmediates();
24-
});
25-
return result;
26-
}
27-
28-
function instanceAct(instance, props) {
29-
ReactTestRenderer.act(() => {
30-
instance.getInstance().setProps(props);
31-
});
32-
}
19+
import { createHooks, instanceAct } from './utils';
3320

3421
const ReactRelayRefetchContainer = {
3522
createContainer: (Component, spec) => (props) => {

0 commit comments

Comments
 (0)