Skip to content

Commit efbc34f

Browse files
committed
test: move mockedLoader around
1 parent d9522a2 commit efbc34f

File tree

4 files changed

+40
-22
lines changed

4 files changed

+40
-22
lines changed

playground/src/pages/users/query.[id].vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script lang="ts">
22
// FIXME: should be able to import from vue-router or auto import
3-
import { defineQueryLoader } from 'unplugin-vue-router/runtime'
3+
import { defineQueryLoader } from 'unplugin-vue-router/data-loaders/vue-query'
44
55
import {
66
type TypesConfig,

src/data-loaders/defineLoader.spec.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44
import { App, defineComponent } from 'vue'
55
import {
6+
DefineDataLoaderOptions,
67
INITIAL_DATA_KEY,
78
SERVER_INITIAL_DATA_KEY,
89
defineBasicLoader,
@@ -19,16 +20,34 @@ import {
1920
import {
2021
DataLoaderPlugin,
2122
DataLoaderPluginOptions,
23+
NavigationResult,
2224
UseDataLoader,
2325
setCurrentContext,
2426
} from 'unplugin-vue-router/runtime'
2527
import { testDefineLoader } from '../../tests/data-loaders'
2628
import { getRouter } from 'vue-router-mock'
2729
import { enableAutoUnmount, mount } from '@vue/test-utils'
2830
import RouterViewMock from '../../tests/data-loaders/RouterViewMock.vue'
29-
import { mockedLoader } from '../../tests/utils'
31+
import { mockPromise } from '../../tests/utils'
3032
import { RouteLocationNormalizedLoaded } from 'vue-router'
3133

34+
function mockedLoader<T = string | NavigationResult>(
35+
// boolean is easier to handle for router mock
36+
options?: DefineDataLoaderOptions<boolean>
37+
) {
38+
const [spy, resolve, reject] = mockPromise<T, unknown>(
39+
// not correct as T could be something else
40+
'ok' as T,
41+
new Error('ko')
42+
)
43+
return {
44+
spy,
45+
resolve,
46+
reject,
47+
loader: defineBasicLoader(async () => await spy(), options),
48+
}
49+
}
50+
3251
describe(
3352
'defineBasicLoader',
3453
// change it during dev while working on features

src/data-loaders/navigation-guard.spec.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @vitest-environment happy-dom
33
*/
44
import { App, createApp, defineComponent } from 'vue'
5-
import { defineBasicLoader } from './defineLoader'
5+
import { DefineDataLoaderOptions, defineBasicLoader } from './defineLoader'
66
import {
77
afterAll,
88
afterEach,
@@ -20,13 +20,30 @@ import {
2020
DataLoaderPlugin,
2121
NavigationResult,
2222
} from 'unplugin-vue-router/runtime'
23-
import { mockedLoader } from '../../tests/utils'
23+
import { mockPromise } from '../../tests/utils'
2424
import {
2525
useDataOne,
2626
useDataTwo,
2727
} from '../../tests/data-loaders/ComponentWithLoader.vue'
2828
import type { NavigationFailure } from 'vue-router'
2929

30+
function mockedLoader<T = string | NavigationResult>(
31+
// boolean is easier to handle for router mock
32+
options?: DefineDataLoaderOptions<boolean>
33+
) {
34+
const [spy, resolve, reject] = mockPromise<T, unknown>(
35+
// not correct as T could be something else
36+
'ok' as T,
37+
new Error('ko')
38+
)
39+
return {
40+
spy,
41+
resolve,
42+
reject,
43+
loader: defineBasicLoader(async () => await spy(), options),
44+
}
45+
}
46+
3047
describe('navigation-guard', () => {
3148
let globalApp: App | undefined
3249

tests/utils.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,3 @@ export function mockPromise<Resolved, Err>(resolved: Resolved, rejected?: Err) {
3838

3939
return [spy, resolve, reject] as const
4040
}
41-
42-
// FIXME: shouldn't be using defineBasicLoader
43-
export function mockedLoader<T = string | NavigationResult>(
44-
// boolean is easier to handle for router mock
45-
options?: DefineDataLoaderOptions<boolean>
46-
) {
47-
const [spy, resolve, reject] = mockPromise<T, unknown>(
48-
// not correct as T could be something else
49-
'ok' as T,
50-
new Error('ko')
51-
)
52-
return {
53-
spy,
54-
resolve,
55-
reject,
56-
loader: defineBasicLoader(async () => await spy(), options),
57-
}
58-
}

0 commit comments

Comments
 (0)