Skip to content

Commit 9d50b40

Browse files
committed
test: add unit tests for search utils
1 parent 5bd90d3 commit 9d50b40

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

test/unit/app/utils/search.spec.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import { describe, expect, it } from 'vitest'
2+
import { parseSearchQuery } from '../../../../app/utils/search'
3+
4+
describe('parseSearchQuery', () => {
5+
it('parses unscoped package names', () => {
6+
expect(parseSearchQuery('nuxt')).toEqual({
7+
name: 'nuxt',
8+
specifier: 'nuxt',
9+
scope: undefined,
10+
version: undefined,
11+
trailing: '',
12+
})
13+
})
14+
15+
it('parses scoped package names', () => {
16+
expect(parseSearchQuery('@nuxt/devtools')).toEqual({
17+
name: '@nuxt/devtools',
18+
specifier: 'devtools',
19+
scope: 'nuxt',
20+
version: undefined,
21+
trailing: '',
22+
})
23+
})
24+
25+
it('parses unscoped package names with version', () => {
26+
expect(parseSearchQuery('nuxt@^4.0.0')).toEqual({
27+
name: 'nuxt',
28+
specifier: 'nuxt',
29+
scope: undefined,
30+
version: '^4.0.0',
31+
trailing: '',
32+
})
33+
expect(parseSearchQuery('[email protected]')).toEqual({
34+
name: 'next',
35+
specifier: 'next',
36+
scope: undefined,
37+
version: '15.3.0-canary.1',
38+
trailing: '',
39+
})
40+
})
41+
42+
it('parses scoped package names with version', () => {
43+
expect(parseSearchQuery('@nuxt/devtools@latest')).toEqual({
44+
name: '@nuxt/devtools',
45+
specifier: 'devtools',
46+
scope: 'nuxt',
47+
version: 'latest',
48+
trailing: '',
49+
})
50+
})
51+
52+
it('returns trailing text', () => {
53+
expect(parseSearchQuery('nuxt keyword:frontend')).toEqual({
54+
name: 'nuxt',
55+
specifier: 'nuxt',
56+
scope: undefined,
57+
version: undefined,
58+
trailing: ' keyword:frontend',
59+
})
60+
expect(parseSearchQuery('@nuxt/devtools@latest keyword:devtools')).toEqual({
61+
name: '@nuxt/devtools',
62+
specifier: 'devtools',
63+
scope: 'nuxt',
64+
version: 'latest',
65+
trailing: ' keyword:devtools',
66+
})
67+
})
68+
})

0 commit comments

Comments
 (0)