-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
index.test.ts
34 lines (30 loc) · 960 Bytes
/
index.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { useRouteQuery } from '.'
describe('useRouteQuery', () => {
const getRoute = (query: Record<string, any> = {}) => ({
query: {
search: 'vue3',
page: '1',
...query,
},
fullPath: '',
hash: '',
matched: [],
meta: {},
name: '',
params: {},
path: '',
redirectedFrom: undefined,
})
it('should return transformed value', () => {
const router = {} as any
const route = getRoute()
const transform = Number
const toArray = (param: string | string[] | null) => Array.isArray(param) ? param : [param]
const page = useRouteQuery('page', '1', { transform, route, router })
const perPage = useRouteQuery('perPage', '15', { transform, route, router })
const tags = useRouteQuery('tags', [], { transform: toArray, route: getRoute({ tags: 'vite' }), router })
expect(page.value).toBe(1)
expect(perPage.value).toBe(15)
expect(tags.value).toEqual(['vite'])
})
})