Jelajahi Sumber

♻️ refactor(test): centralize Dialog component mock in test setup

- remove Dialog component mock from order-page.test.tsx
- add centralized Dialog component mock in setup.ts using React.createElement
- improve test code maintainability by avoiding duplicate mocks across test files
yourname 3 bulan lalu
induk
melakukan
c31ec2c541
2 mengubah file dengan 13 tambahan dan 10 penghapusan
  1. 0 9
      mini/tests/pages/order-page.test.tsx
  2. 13 1
      mini/tests/setup.ts

+ 0 - 9
mini/tests/pages/order-page.test.tsx

@@ -48,15 +48,6 @@ const Wrapper = ({ children }: { children: React.ReactNode }) => {
   )
 }
 
-// Mock Dialog组件
-jest.mock('@/components/ui/dialog', () => ({
-  Dialog: ({ open, children }: any) => open ? <div data-testid="dialog">{children}</div> : null,
-  DialogContent: ({ children, className }: any) => <div className={className}>{children}</div>,
-  DialogHeader: ({ children, className }: any) => <div className={className}>{children}</div>,
-  DialogTitle: ({ children, className }: any) => <div className={className}>{children}</div>,
-  DialogFooter: ({ children, className }: any) => <div className={className}>{children}</div>
-}))
-
 // Mock API客户端
 jest.mock('@/api', () => ({
   orderClient: {

+ 13 - 1
mini/tests/setup.ts

@@ -417,4 +417,16 @@ console.error = (...args: any[]) => {
     return
   }
   originalConsoleError(...args)
-}
+}
+
+// Mock 常用 UI 组件
+jest.mock('@/components/ui/dialog', () => {
+  const React = require('react')
+  return {
+    Dialog: ({ open, children }: any) => open ? React.createElement('div', { 'data-testid': 'dialog' }, children) : null,
+    DialogContent: ({ children, className }: any) => React.createElement('div', { className }, children),
+    DialogHeader: ({ children, className }: any) => React.createElement('div', { className }, children),
+    DialogTitle: ({ children, className }: any) => React.createElement('div', { className }, children),
+    DialogFooter: ({ children, className }: any) => React.createElement('div', { className }, children)
+  }
+})