Files
BIPMaterialManager/tests/unit/cleaner-page-history-lazy.test.tsx
2026-04-14 20:49:29 +08:00

108 lines
3.2 KiB
TypeScript

import React from 'react'
import { renderToStaticMarkup } from 'react-dom/server'
import { describe, expect, it, vi, beforeEach } from 'vitest'
const { mockHistoryModalModuleLoad } = vi.hoisted(() => ({
mockHistoryModalModuleLoad: vi.fn()
}))
vi.mock('../../src/renderer/src/hooks/useCleaner', () => ({
useCleaner: () => ({
isAdmin: false,
currentUsername: 'tester',
dryRun: false,
setDryRun: vi.fn(),
valMode: 'database_full',
setValMode: vi.fn(),
validationResults: [],
selectedItems: new Set<string>(),
setSelectedItems: vi.fn(),
setHiddenItems: vi.fn(),
managers: [],
selectedManagers: [],
setSelectedManagers: vi.fn(),
isRunning: false,
isExecuting: false,
isValidationRunning: false,
isExporting: false,
isTypeDialogOpen: false,
setIsTypeDialogOpen: vi.fn(),
headless: false,
setHeadless: vi.fn(),
processConcurrency: 1,
updateProcessConcurrency: vi.fn(),
showSettingsMenu: false,
setShowSettingsMenu: vi.fn(),
filteredResults: [],
isReportDialogOpen: false,
setIsReportDialogOpen: vi.fn(),
reportData: null,
editingCell: null,
editValue: '',
setEditValue: vi.fn(),
inputRef: { current: null },
startEdit: vi.fn(),
saveEdit: vi.fn(),
cancelEdit: vi.fn(),
handleAssignManagerOnSelect: vi.fn(),
progress: null,
startTime: null,
resetStartTime: vi.fn(),
handleValidation: vi.fn(),
handleCheckboxToggle: vi.fn(),
handleConfirmDeletion: vi.fn(),
handleExecuteDeletion: vi.fn(),
handleExportResults: vi.fn(),
confirmDialog: null
})
}))
vi.mock('../../src/renderer/src/components/cleaner/CleanerExecutionBar', () => ({
CleanerExecutionBar: () => React.createElement('div', null, 'execution-bar')
}))
vi.mock('../../src/renderer/src/components/cleaner/CleanerResultsTable', () => ({
CleanerResultsTable: () => React.createElement('div', null, 'results-table')
}))
vi.mock('../../src/renderer/src/components/cleaner/CleanerSidebar', () => ({
CleanerSidebar: () => React.createElement('aside', null, 'sidebar')
}))
vi.mock('../../src/renderer/src/components/cleaner/CleanerToolbar', () => ({
CleanerToolbar: () => React.createElement('div', null, 'toolbar')
}))
vi.mock('../../src/renderer/src/components/ui/ConfirmDialog', () => ({
ConfirmDialog: () => React.createElement('div', null, 'confirm-dialog')
}))
vi.mock('../../src/renderer/src/components/MaterialTypeManagementDialog', () => ({
default: () => React.createElement('div', null, 'type-dialog')
}))
vi.mock('../../src/renderer/src/components/ExecutionReportDialog', () => ({
default: () => React.createElement('div', null, 'report-dialog')
}))
vi.mock('../../src/renderer/src/components/CleanerOperationHistoryModal', () => {
mockHistoryModalModuleLoad()
return {
default: () => React.createElement('div', null, 'history-dialog')
}
})
import CleanerPage from '../../src/renderer/src/pages/CleanerPage'
describe('CleanerPage history modal lazy loading', () => {
beforeEach(() => {
mockHistoryModalModuleLoad.mockClear()
})
it('does not load the history modal module on the initial render', () => {
renderToStaticMarkup(React.createElement(CleanerPage))
expect(mockHistoryModalModuleLoad).not.toHaveBeenCalled()
})
})