mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-10 11:19:50 +08:00
27 lines
858 B
TypeScript
27 lines
858 B
TypeScript
import { describe, expect, it, vi } from 'vitest'
|
|
|
|
const { importWithRetryMock } = vi.hoisted(() => ({
|
|
importWithRetryMock: vi.fn(async (loader: () => Promise<unknown>) => loader()),
|
|
}))
|
|
|
|
vi.mock('@/utils/importRetry', () => ({
|
|
importWithRetry: importWithRetryMock,
|
|
}))
|
|
|
|
import { view } from '../helpers'
|
|
|
|
describe('route view loader', () => {
|
|
it('exposes a side-effect-free raw loader for navigation prefetch', async () => {
|
|
const component = { name: 'LazyPage' }
|
|
const rawLoader = vi.fn(async () => component)
|
|
const routeLoader = view(rawLoader)
|
|
|
|
await expect(routeLoader.prefetch()).resolves.toBe(component)
|
|
expect(rawLoader).toHaveBeenCalledTimes(1)
|
|
expect(importWithRetryMock).not.toHaveBeenCalled()
|
|
|
|
await expect(routeLoader()).resolves.toBe(component)
|
|
expect(importWithRetryMock).toHaveBeenCalledTimes(1)
|
|
})
|
|
})
|