({
Component,
preloaded = false,
query,
variables = {},
wrapperProps = {},
}: SetupTestWrapper<T, ComponentProps>)
| 81 | * }) |
| 82 | */ |
| 83 | export const setupTestWrapper = <T extends OperationType, ComponentProps = {}>({ |
| 84 | Component, |
| 85 | preloaded = false, |
| 86 | query, |
| 87 | variables = {}, |
| 88 | wrapperProps = {}, |
| 89 | }: SetupTestWrapper<T, ComponentProps>) => { |
| 90 | const renderWithRelay = (mockResolvers: MockResolvers = {}, props: any = {}): RenderWithRelay => { |
| 91 | const env = getMockRelayEnvironment() |
| 92 | |
| 93 | const TestRenderer = () => { |
| 94 | return query ? ( |
| 95 | <QueryRenderer<T> |
| 96 | environment={env} |
| 97 | variables={variables} |
| 98 | query={query} |
| 99 | render={({ props: relayProps, error }) => { |
| 100 | if (relayProps) { |
| 101 | return <Component {...relayProps} {...props} /> |
| 102 | } else if (error) { |
| 103 | console.error(error) |
| 104 | } |
| 105 | }} |
| 106 | /> |
| 107 | ) : ( |
| 108 | <Component {...props} /> |
| 109 | ) |
| 110 | } |
| 111 | |
| 112 | const view = renderWithWrappers(<TestRenderer />, wrapperProps) |
| 113 | |
| 114 | act(() => { |
| 115 | const resolve = preloaded |
| 116 | ? env.mock.queueOperationResolver |
| 117 | : env.mock.resolveMostRecentOperation |
| 118 | |
| 119 | if (preloaded) { |
| 120 | if (!query) { |
| 121 | throw new Error("A `query` is required when using `preloaded` prop.") |
| 122 | } |
| 123 | env.mock.queuePendingOperation(query, variables) |
| 124 | } |
| 125 | |
| 126 | resolve((operation: any) => { |
| 127 | return MockPayloadGenerator.generate(operation, mockResolvers) |
| 128 | }) |
| 129 | }) |
| 130 | |
| 131 | const mockResolveLastOperation = (mockResolvers: MockResolvers) => { |
| 132 | act(() => { |
| 133 | env.mock.resolveMostRecentOperation((operation) => { |
| 134 | return MockPayloadGenerator.generate(operation, mockResolvers) |
| 135 | }) |
| 136 | }) |
| 137 | } |
| 138 | |
| 139 | const mockRejectLastOperation = (error: Error) => { |
| 140 | act(() => { |
no outgoing calls
no test coverage detected