Skip to content

Commit

Permalink
Fix usePreloadedQuery-test
Browse files Browse the repository at this point in the history
Differential Revision: D63040417

fbshipit-source-id: d422c4b1f8491c4d7eda58c944f9ed57a8fd403d
  • Loading branch information
gordyf authored and facebook-github-bot committed Sep 23, 2024
1 parent 0cf0948 commit 854c879
Showing 1 changed file with 38 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ const {
graphql,
} = require('relay-runtime');
const {createMockEnvironment} = require('relay-test-utils');
const {skipIf} = require('relay-test-utils-internal');
const warning = require('warning');

jest.mock('warning');
Expand Down Expand Up @@ -1060,55 +1059,47 @@ describe('usePreloadedQuery', () => {
});

describe('when loadQuery is passed a preloadedQuery that was disposed', () => {
skipIf(
process.env.OSS,
'warns that the preloadedQuery has already been disposed',
() => {
const expectWarningMessage = expect.stringMatching(
/^usePreloadedQuery\(\): Expected preloadedQuery to not be disposed/,
);
const prefetched = loadQuery(
environment,
preloadableConcreteRequest,
{
id: '1',
},
);
it('warns that the preloadedQuery has already been disposed', () => {
const expectWarningMessage = expect.stringMatching(
/^usePreloadedQuery\(\): Expected preloadedQuery to not be disposed/,
);
const prefetched = loadQuery(environment, preloadableConcreteRequest, {
id: '1',
});

function Component(props: any) {
const data = usePreloadedQuery(query, props.prefetched);
return data?.node?.name ?? 'MISSING NAME';
}
function Component(props: any) {
const data = usePreloadedQuery(query, props.prefetched);
return data?.node?.name ?? 'MISSING NAME';
}

const render = () => {
TestRenderer.act(() => {
TestRenderer.create(
<RelayEnvironmentProvider environment={environment}>
<React.Suspense fallback="Fallback">
<Component prefetched={prefetched} />
</React.Suspense>
</RelayEnvironmentProvider>,
);
jest.runAllImmediates();
});
};

render();
expect(warning).toBeCalledTimes(2);
expect(warning).toHaveBeenLastCalledWith(
true, // invariant holds
expectWarningMessage,
);
const render = () => {
TestRenderer.act(() => {
TestRenderer.create(
<RelayEnvironmentProvider environment={environment}>
<React.Suspense fallback="Fallback">
<Component prefetched={prefetched} />
</React.Suspense>
</RelayEnvironmentProvider>,
);
jest.runAllImmediates();
});
};

prefetched.dispose();
render();
expect(warning).toBeCalledTimes(3);
expect(warning).toHaveBeenLastCalledWith(
false, // invariant broken
expectWarningMessage,
);
},
);
render();
expect(warning).toBeCalledTimes(1);
expect(warning).toHaveBeenLastCalledWith(
true, // invariant holds
expectWarningMessage,
);

prefetched.dispose();
render();
expect(warning).toBeCalledTimes(2);
expect(warning).toHaveBeenLastCalledWith(
false, // invariant broken
expectWarningMessage,
);
});
});

describe('refetching', () => {
Expand Down

0 comments on commit 854c879

Please sign in to comment.