Automate RC8 release journeys
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import { renderHook, waitFor } from '@testing-library/react'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { useWorkbenchBootstrap } from './useWorkbenchBootstrap'
|
||||
|
||||
function action() {
|
||||
return vi.fn().mockResolvedValue(undefined)
|
||||
}
|
||||
|
||||
function options(selectedProjectId: string | null) {
|
||||
return {
|
||||
selectedProjectId,
|
||||
selectedDetectionRunId: '',
|
||||
detectionClassFilter: '',
|
||||
detectionMinConfidenceFilter: 0,
|
||||
selectedSegmentationRunId: '',
|
||||
segmentationClassFilter: '',
|
||||
segmentationMinConfidenceFilter: 0,
|
||||
loadProjects: action(),
|
||||
loadCapabilities: action(),
|
||||
loadDetectionModels: action(),
|
||||
loadSegmentationModels: action(),
|
||||
loadProjectData: action(),
|
||||
loadDetectionRuns: action(),
|
||||
loadSegmentationRuns: action(),
|
||||
loadQualityChecks: action(),
|
||||
loadExports: action(),
|
||||
loadDetectionResults: action(),
|
||||
loadSegmentationResults: action(),
|
||||
resetProjectData: vi.fn(),
|
||||
resetDatasetForProject: vi.fn(),
|
||||
resetDetectionForProject: vi.fn(),
|
||||
resetSegmentationForProject: vi.fn(),
|
||||
resetExportsForProject: vi.fn(),
|
||||
}
|
||||
}
|
||||
|
||||
describe('useWorkbenchBootstrap', () => {
|
||||
it('loads global capabilities and clears project-owned state without a project', async () => {
|
||||
const state = options(null)
|
||||
renderHook(() => useWorkbenchBootstrap(state))
|
||||
|
||||
await waitFor(() => expect(state.loadProjects).toHaveBeenCalledOnce())
|
||||
expect(state.loadCapabilities).toHaveBeenCalledOnce()
|
||||
expect(state.loadDetectionModels).toHaveBeenCalledOnce()
|
||||
expect(state.loadSegmentationModels).toHaveBeenCalledOnce()
|
||||
expect(state.resetProjectData).toHaveBeenCalledOnce()
|
||||
expect(state.resetDatasetForProject).toHaveBeenCalledOnce()
|
||||
expect(state.loadProjectData).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('resets stale state before loading every project-owned collection', async () => {
|
||||
const state = options('project-1')
|
||||
renderHook(() => useWorkbenchBootstrap(state))
|
||||
|
||||
await waitFor(() => expect(state.loadProjectData).toHaveBeenCalledWith('project-1'))
|
||||
expect(state.resetProjectData).toHaveBeenCalledOnce()
|
||||
expect(state.resetDatasetForProject).toHaveBeenCalledOnce()
|
||||
expect(state.resetDetectionForProject).toHaveBeenCalledOnce()
|
||||
expect(state.resetSegmentationForProject).toHaveBeenCalledOnce()
|
||||
expect(state.resetExportsForProject).toHaveBeenCalledOnce()
|
||||
expect(state.loadDetectionRuns).toHaveBeenCalledWith('project-1')
|
||||
expect(state.loadSegmentationRuns).toHaveBeenCalledWith('project-1')
|
||||
expect(state.loadQualityChecks).toHaveBeenCalledWith('project-1')
|
||||
expect(state.loadExports).toHaveBeenCalledWith('project-1')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user