Browse Source

ref(makeTestQueryClient): Use makeTestQueryClient consistently in tests (#56288)

See also: https://github.com/getsentry/develop/pull/1036
Ryan Albrecht 1 year ago
parent
commit
fd0bb53c31

+ 3 - 4
static/app/utils/profiling/hooks/useProfileEvents.spec.tsx

@@ -1,20 +1,19 @@
 import {ReactNode} from 'react';
 import {ReactNode} from 'react';
 
 
 import {initializeOrg} from 'sentry-test/initializeOrg';
 import {initializeOrg} from 'sentry-test/initializeOrg';
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 
 
 import {EventsResults} from 'sentry/utils/profiling/hooks/types';
 import {EventsResults} from 'sentry/utils/profiling/hooks/types';
 import {useProfileEvents} from 'sentry/utils/profiling/hooks/useProfileEvents';
 import {useProfileEvents} from 'sentry/utils/profiling/hooks/useProfileEvents';
 import {formatSort} from 'sentry/utils/profiling/hooks/utils';
 import {formatSort} from 'sentry/utils/profiling/hooks/utils';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 
 
 const {organization} = initializeOrg();
 const {organization} = initializeOrg();
-const client = new QueryClient();
-
 function TestContext({children}: {children?: ReactNode}) {
 function TestContext({children}: {children?: ReactNode}) {
   return (
   return (
-    <QueryClientProvider client={client}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <OrganizationContext.Provider value={organization}>
       <OrganizationContext.Provider value={organization}>
         {children}
         {children}
       </OrganizationContext.Provider>
       </OrganizationContext.Provider>

+ 3 - 4
static/app/utils/profiling/hooks/useProfileEventsStats.spec.tsx

@@ -1,18 +1,17 @@
 import {ReactNode} from 'react';
 import {ReactNode} from 'react';
 
 
 import {initializeOrg} from 'sentry-test/initializeOrg';
 import {initializeOrg} from 'sentry-test/initializeOrg';
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 
 
 import {useProfileEventsStats} from 'sentry/utils/profiling/hooks/useProfileEventsStats';
 import {useProfileEventsStats} from 'sentry/utils/profiling/hooks/useProfileEventsStats';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 
 
 const {organization} = initializeOrg();
 const {organization} = initializeOrg();
-const client = new QueryClient();
-
 function TestContext({children}: {children?: ReactNode}) {
 function TestContext({children}: {children?: ReactNode}) {
   return (
   return (
-    <QueryClientProvider client={client}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <OrganizationContext.Provider value={organization}>
       <OrganizationContext.Provider value={organization}>
         {children}
         {children}
       </OrganizationContext.Provider>
       </OrganizationContext.Provider>

+ 3 - 4
static/app/utils/profiling/hooks/useProfileFunctionTrends.spec.tsx

@@ -1,19 +1,18 @@
 import {ReactElement, useMemo} from 'react';
 import {ReactElement, useMemo} from 'react';
 
 
 import {initializeOrg} from 'sentry-test/initializeOrg';
 import {initializeOrg} from 'sentry-test/initializeOrg';
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 
 
 import {useProfileFunctionTrends} from 'sentry/utils/profiling/hooks/useProfileFunctionTrends';
 import {useProfileFunctionTrends} from 'sentry/utils/profiling/hooks/useProfileFunctionTrends';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 
 
 function TestContext({children}: {children: ReactElement}) {
 function TestContext({children}: {children: ReactElement}) {
   const {organization} = useMemo(() => initializeOrg(), []);
   const {organization} = useMemo(() => initializeOrg(), []);
-  // ensure client is rebuilt on each render otherwise caching will interfere with subsequent tests
-  const client = useMemo(() => new QueryClient(), []);
 
 
   return (
   return (
-    <QueryClientProvider client={client}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <OrganizationContext.Provider value={organization}>
       <OrganizationContext.Provider value={organization}>
         {children}
         {children}
       </OrganizationContext.Provider>
       </OrganizationContext.Provider>

+ 3 - 4
static/app/utils/profiling/hooks/useProfileFunctions.spec.tsx

@@ -1,19 +1,18 @@
 import {ReactElement, useMemo} from 'react';
 import {ReactElement, useMemo} from 'react';
 
 
 import {initializeOrg} from 'sentry-test/initializeOrg';
 import {initializeOrg} from 'sentry-test/initializeOrg';
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 
 
 import {useProfileFunctions} from 'sentry/utils/profiling/hooks/useProfileFunctions';
 import {useProfileFunctions} from 'sentry/utils/profiling/hooks/useProfileFunctions';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 import {OrganizationContext} from 'sentry/views/organizationContext';
 
 
 function TestContext({children}: {children: ReactElement}) {
 function TestContext({children}: {children: ReactElement}) {
   const {organization} = useMemo(() => initializeOrg(), []);
   const {organization} = useMemo(() => initializeOrg(), []);
-  // ensure client is rebuilt on each render otherwise caching will interfere with subsequent tests
-  const client = useMemo(() => new QueryClient(), []);
 
 
   return (
   return (
-    <QueryClientProvider client={client}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <OrganizationContext.Provider value={organization}>
       <OrganizationContext.Provider value={organization}>
         {children}
         {children}
       </OrganizationContext.Provider>
       </OrganizationContext.Provider>

+ 5 - 4
static/app/utils/useProjectSdkNeedsUpdate.spec.tsx

@@ -1,17 +1,18 @@
 import {ReactNode} from 'react';
 import {ReactNode} from 'react';
 
 
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 import {reactHooks} from 'sentry-test/reactTestingLibrary';
 
 
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 import useProjectSdkNeedsUpdate from 'sentry/utils/useProjectSdkNeedsUpdate';
 import useProjectSdkNeedsUpdate from 'sentry/utils/useProjectSdkNeedsUpdate';
 
 
-const client = new QueryClient();
-
 const MOCK_ORG = TestStubs.Organization();
 const MOCK_ORG = TestStubs.Organization();
 const MOCK_PROJECT = TestStubs.Project();
 const MOCK_PROJECT = TestStubs.Project();
 
 
 function wrapper({children}: {children?: ReactNode}) {
 function wrapper({children}: {children?: ReactNode}) {
-  return <QueryClientProvider client={client}>{children}</QueryClientProvider>;
+  return (
+    <QueryClientProvider client={makeTestQueryClient()}>{children}</QueryClientProvider>
+  );
 }
 }
 
 
 function mockCurrentVersion(
 function mockCurrentVersion(

+ 1 - 1
static/app/utils/useProjectSdkNeedsUpdate.tsx

@@ -20,7 +20,7 @@ function useProjectSdkNeedsUpdate({
   | {isError: false; isFetching: false; needsUpdate: boolean} {
   | {isError: false; isFetching: false; needsUpdate: boolean} {
   const {data, isLoading, isError} = useApiQuery<ProjectSdkUpdates[]>(
   const {data, isLoading, isError} = useApiQuery<ProjectSdkUpdates[]>(
     [`/organizations/${organization.slug}/sdk-updates/`],
     [`/organizations/${organization.slug}/sdk-updates/`],
-    {staleTime: 0}
+    {staleTime: 5000}
   );
   );
 
 
   if (isLoading) {
   if (isLoading) {

+ 3 - 11
static/app/views/discover/table/quickContext/eventContext.spec.tsx

@@ -1,5 +1,6 @@
 import type {Location} from 'history';
 import type {Location} from 'history';
 
 
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {render, screen} from 'sentry-test/reactTestingLibrary';
 import {render, screen} from 'sentry-test/reactTestingLibrary';
 
 
 import ConfigStore from 'sentry/stores/configStore';
 import ConfigStore from 'sentry/stores/configStore';
@@ -13,7 +14,7 @@ import {
   Frame,
   Frame,
 } from 'sentry/types/event';
 } from 'sentry/types/event';
 import EventView, {EventData} from 'sentry/utils/discover/eventView';
 import EventView, {EventData} from 'sentry/utils/discover/eventView';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 
 
 import EventContext from './eventContext';
 import EventContext from './eventContext';
 
 
@@ -40,18 +41,10 @@ const dataRow: EventData = {
   'project.name': 'sentry',
   'project.name': 'sentry',
 };
 };
 
 
-const queryClient = new QueryClient({
-  defaultOptions: {
-    queries: {
-      retry: false,
-    },
-  },
-});
-
 const renderEventContext = (location?: Location, eventView?: EventView) => {
 const renderEventContext = (location?: Location, eventView?: EventView) => {
   const organization = TestStubs.Organization();
   const organization = TestStubs.Organization();
   render(
   render(
-    <QueryClientProvider client={queryClient}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <EventContext
       <EventContext
         dataRow={dataRow}
         dataRow={dataRow}
         organization={organization}
         organization={organization}
@@ -65,7 +58,6 @@ const renderEventContext = (location?: Location, eventView?: EventView) => {
 
 
 describe('Quick Context Content: Event ID Column', function () {
 describe('Quick Context Content: Event ID Column', function () {
   afterEach(() => {
   afterEach(() => {
-    queryClient.clear();
     MockApiClient.clearMockResponses();
     MockApiClient.clearMockResponses();
   });
   });
 
 

+ 3 - 11
static/app/views/discover/table/quickContext/issueContext.spec.tsx

@@ -1,19 +1,12 @@
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
 import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
 
 
 import {EventData} from 'sentry/utils/discover/eventView';
 import {EventData} from 'sentry/utils/discover/eventView';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 
 
 import IssueContext from './issueContext';
 import IssueContext from './issueContext';
 import {defaultRow} from './testUtils';
 import {defaultRow} from './testUtils';
 
 
-const queryClient = new QueryClient({
-  defaultOptions: {
-    queries: {
-      retry: false,
-    },
-  },
-});
-
 let mockedGroup = TestStubs.Group({
 let mockedGroup = TestStubs.Group({
   id: '3512441874',
   id: '3512441874',
   project: {
   project: {
@@ -34,7 +27,7 @@ let mockedGroup = TestStubs.Group({
 const renderIssueContext = (dataRow: EventData = defaultRow) => {
 const renderIssueContext = (dataRow: EventData = defaultRow) => {
   const organization = TestStubs.Organization();
   const organization = TestStubs.Organization();
   render(
   render(
-    <QueryClientProvider client={queryClient}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <IssueContext dataRow={dataRow} organization={organization} />
       <IssueContext dataRow={dataRow} organization={organization} />
     </QueryClientProvider>,
     </QueryClientProvider>,
     {organization}
     {organization}
@@ -67,7 +60,6 @@ describe('Quick Context Content Issue Column', function () {
   });
   });
 
 
   afterEach(function () {
   afterEach(function () {
-    queryClient.clear();
     MockApiClient.clearMockResponses();
     MockApiClient.clearMockResponses();
   });
   });
 
 

+ 3 - 11
static/app/views/discover/table/quickContext/quickContextHovercard.spec.tsx

@@ -1,23 +1,16 @@
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
 import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
 
 
 import ConfigStore from 'sentry/stores/configStore';
 import ConfigStore from 'sentry/stores/configStore';
 import {Event, EventOrGroupType} from 'sentry/types/event';
 import {Event, EventOrGroupType} from 'sentry/types/event';
 import EventView, {EventData} from 'sentry/utils/discover/eventView';
 import EventView, {EventData} from 'sentry/utils/discover/eventView';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 import {useLocation} from 'sentry/utils/useLocation';
 import {useLocation} from 'sentry/utils/useLocation';
 
 
 import {QuickContextHoverWrapper} from './quickContextWrapper';
 import {QuickContextHoverWrapper} from './quickContextWrapper';
 import {defaultRow, mockedCommit, mockedUser1, mockedUser2} from './testUtils';
 import {defaultRow, mockedCommit, mockedUser1, mockedUser2} from './testUtils';
 import {ContextType} from './utils';
 import {ContextType} from './utils';
 
 
-const queryClient = new QueryClient({
-  defaultOptions: {
-    queries: {
-      retry: false,
-    },
-  },
-});
-
 const renderQuickContextContent = (
 const renderQuickContextContent = (
   dataRow: EventData = defaultRow,
   dataRow: EventData = defaultRow,
   contextType: ContextType = ContextType.ISSUE,
   contextType: ContextType = ContextType.ISSUE,
@@ -25,7 +18,7 @@ const renderQuickContextContent = (
 ) => {
 ) => {
   const organization = TestStubs.Organization();
   const organization = TestStubs.Organization();
   render(
   render(
-    <QueryClientProvider client={queryClient}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <QuickContextHoverWrapper
       <QuickContextHoverWrapper
         dataRow={dataRow}
         dataRow={dataRow}
         contextType={contextType}
         contextType={contextType}
@@ -61,7 +54,6 @@ describe('Quick Context', function () {
     });
     });
 
 
     afterEach(() => {
     afterEach(() => {
-      queryClient.clear();
       MockApiClient.clearMockResponses();
       MockApiClient.clearMockResponses();
       jest.mocked(useLocation).mockReset();
       jest.mocked(useLocation).mockReset();
     });
     });

+ 3 - 11
static/app/views/discover/table/quickContext/releaseContext.spec.tsx

@@ -1,19 +1,12 @@
+import {makeTestQueryClient} from 'sentry-test/queryClient';
 import {render, screen, within} from 'sentry-test/reactTestingLibrary';
 import {render, screen, within} from 'sentry-test/reactTestingLibrary';
 
 
 import ConfigStore from 'sentry/stores/configStore';
 import ConfigStore from 'sentry/stores/configStore';
-import {QueryClient, QueryClientProvider} from 'sentry/utils/queryClient';
+import {QueryClientProvider} from 'sentry/utils/queryClient';
 
 
 import ReleaseContext from './releaseContext';
 import ReleaseContext from './releaseContext';
 import {defaultRow, mockedCommit, mockedUser1, mockedUser2} from './testUtils';
 import {defaultRow, mockedCommit, mockedUser1, mockedUser2} from './testUtils';
 
 
-const queryClient = new QueryClient({
-  defaultOptions: {
-    queries: {
-      retry: false,
-    },
-  },
-});
-
 export const mockedReleaseWithHealth = TestStubs.Release({
 export const mockedReleaseWithHealth = TestStubs.Release({
   id: '1',
   id: '1',
   shortVersion: 'sentry-android-shop@1.2.0',
   shortVersion: 'sentry-android-shop@1.2.0',
@@ -31,7 +24,7 @@ export const mockedReleaseWithHealth = TestStubs.Release({
 const renderReleaseContext = () => {
 const renderReleaseContext = () => {
   const organization = TestStubs.Organization();
   const organization = TestStubs.Organization();
   render(
   render(
-    <QueryClientProvider client={queryClient}>
+    <QueryClientProvider client={makeTestQueryClient()}>
       <ReleaseContext dataRow={defaultRow} organization={organization} />
       <ReleaseContext dataRow={defaultRow} organization={organization} />
     </QueryClientProvider>,
     </QueryClientProvider>,
     {organization}
     {organization}
@@ -47,7 +40,6 @@ describe('Quick Context Content Release Column', function () {
   });
   });
 
 
   afterEach(() => {
   afterEach(() => {
-    queryClient.clear();
     MockApiClient.clearMockResponses();
     MockApiClient.clearMockResponses();
   });
   });
 
 

Some files were not shown because too many files changed in this diff