Browse Source

test: 调整测试

xyh 2 years ago
parent
commit
d394f05df0

+ 29 - 22
packages/app/src/hooks/use-table-export-event/index.test.tsx

@@ -1,8 +1,15 @@
 import {render, waitFor} from '@testing-library/react';
-import {useExportFile} from '.';
+import {useTableExportEvent} from '.';
 import {QueryClient, QueryClientProvider} from '@tanstack/react-query';
 import {FC} from 'react';
 import {act} from 'react-dom/test-utils';
+import {createTableSearchParamsContext} from '@hooks';
+import {LDTableSearchParamsProvider} from '@components';
+import {
+  RouteObject,
+  RouterProvider,
+  createBrowserRouter,
+} from 'react-router-dom';
 
 const fn = vi.fn();
 function mockAsync() {
@@ -14,36 +21,26 @@ function mockAsync() {
   });
 }
 
-describe('useExportFile', function() {
-  Object.assign(global, {
-    URL: {
-      createObjectURL(val: string) {
-        return val;
-      },
-      revokeObjectURL(val: string) {
-        return val;
-      },
-    },
-    open() {
-      /** mock fn */
-    },
-  });
-
+describe('useTableExportEvent', function() {
   beforeEach(function() {
     fn.mockClear();
   });
 
   it('定义正确', function() {
-    expect(useExportFile).toBeDefined();
+    expect(useTableExportEvent).toBeDefined();
 
-    expect(useExportFile).toBeInstanceOf(Function);
+    expect(useTableExportEvent).toBeInstanceOf(Function);
   });
 
   it('测试组件操作', async function() {
     const client = new QueryClient();
+    const paramsContext = createTableSearchParamsContext({});
 
     const App: FC = function() {
-      const [isExporting, mutate] = useExportFile(mockAsync, '');
+      const [isExporting, mutate] = useTableExportEvent(
+        mockAsync,
+        paramsContext,
+      );
 
       return (
         <>
@@ -53,10 +50,20 @@ describe('useExportFile', function() {
       );
     };
 
+    const routes: RouteObject[] = [
+      {
+        path: '/',
+        element: (
+          <LDTableSearchParamsProvider context={paramsContext} state={{}}>
+            <QueryClientProvider client={client}>
+              <App />
+            </QueryClientProvider>,
+          </LDTableSearchParamsProvider>
+        ),
+      },
+    ];
     const {getByTestId} = render(
-      <QueryClientProvider client={client}>
-        <App />
-      </QueryClientProvider>,
+      <RouterProvider router={createBrowserRouter(routes)} />,
     );
 
     expect(getByTestId('state').innerHTML).toBe('false');

+ 2 - 2
packages/app/src/hooks/use-table-export-event/index.ts

@@ -6,7 +6,7 @@ import {TableSearchParamsContext} from 'hooks/use-table-search-params';
 import {useCallback} from 'react';
 
 export function exportFile(blob: Blob, name: string) {
-  if (process.env.NODE_ENV === 'test') return;
+  if (process.env.NODE_ENV === 'test' || process.env.IS_E2E === 'true') return;
 
   const url = URL.createObjectURL(blob);
 
@@ -41,7 +41,7 @@ export function useTableExportEvent<P>(
 
   const {mutate, isLoading} = useMutation(fn, {
     onSuccess(data) {
-      !process.env.IS_E2E && exportFile(data, fileName ?? tableTitle);
+      exportFile(data, fileName ?? tableTitle);
     },
     onError() {
       message.error(errorMessage ?? EXPORT_ERROR_TIPS);