[fix] simplify useAssetBrowserDialog

This commit is contained in:
Arjan Singh
2025-09-16 15:06:35 -07:00
committed by Arjan Singh
parent f7fe476cd4
commit 143f9e1323
2 changed files with 50 additions and 45 deletions

View File

@@ -1,17 +1,10 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { describe, expect, it, vi } from 'vitest'
import { useAssetBrowserDialog } from '@/platform/assets/composables/useAssetBrowserDialog'
import { useDialogStore } from '@/stores/dialogStore'
// Mock the dialog store
let mockShowDialog: ReturnType<typeof vi.fn>
let mockCloseDialog: ReturnType<typeof vi.fn>
vi.mock('@/stores/dialogStore', () => ({
useDialogStore: vi.fn(() => ({
showDialog: mockShowDialog,
closeDialog: mockCloseDialog
}))
}))
vi.mock('@/stores/dialogStore')
// Test factory functions
interface AssetBrowserProps {
@@ -31,16 +24,20 @@ function createAssetBrowserProps(
}
describe('useAssetBrowserDialog', () => {
let assetBrowserDialog: ReturnType<typeof useAssetBrowserDialog>
beforeEach(() => {
mockShowDialog = vi.fn()
mockCloseDialog = vi.fn()
assetBrowserDialog = useAssetBrowserDialog()
})
describe('Asset Selection Flow', () => {
it('auto-closes dialog when asset is selected', () => {
// Create fresh mocks for this test
const mockShowDialog = vi.fn()
const mockCloseDialog = vi.fn()
vi.mocked(useDialogStore).mockReturnValue({
showDialog: mockShowDialog,
closeDialog: mockCloseDialog
} as Partial<ReturnType<typeof useDialogStore>> as ReturnType<
typeof useDialogStore
>)
const assetBrowserDialog = useAssetBrowserDialog()
const onAssetSelected = vi.fn()
const props = createAssetBrowserProps({ onAssetSelected })
@@ -61,6 +58,18 @@ describe('useAssetBrowserDialog', () => {
})
it('closes dialog when close handler is called', () => {
// Create fresh mocks for this test
const mockShowDialog = vi.fn()
const mockCloseDialog = vi.fn()
vi.mocked(useDialogStore).mockReturnValue({
showDialog: mockShowDialog,
closeDialog: mockCloseDialog
} as Partial<ReturnType<typeof useDialogStore>> as ReturnType<
typeof useDialogStore
>)
const assetBrowserDialog = useAssetBrowserDialog()
const props = createAssetBrowserProps()
assetBrowserDialog.show(props)