Skip to content

Commit 9f91897

Browse files
authored
chore: add resolver test, configue vitest projects (#2400)
1 parent 9a4bdee commit 9f91897

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { beforeEach, describe, expect, it, vi } from 'vitest'
2+
import { createResolver, getRoots } from './resolver'
3+
4+
const vitefuMocks = vi.hoisted(() => {
5+
const FAKE_ROOT = '/user/project'
6+
return {
7+
findDepPkgJsonPath: vi.fn((name: string) => {
8+
if (name === '@slidev/client')
9+
return `${FAKE_ROOT}/node_modules/@slidev/client/package.json`
10+
if (name === '@slidev/theme-official')
11+
return `${FAKE_ROOT}/node_modules/@slidev/theme-official/package.json`
12+
if (name === 'slidev-theme-xyz')
13+
return `${FAKE_ROOT}/node_modules/slidev-theme-xyz/package.json`
14+
if (name === 'slidev-theme-full')
15+
return `${FAKE_ROOT}/node_modules/slidev-theme-full/package.json`
16+
return null
17+
}),
18+
findClosestPkgJsonPath: vi.fn().mockResolvedValue(`${FAKE_ROOT}/package.json`),
19+
}
20+
})
21+
22+
vi.mock('vitefu', () => vitefuMocks)
23+
24+
describe('createResolver', () => {
25+
beforeEach(async () => {
26+
await getRoots('/user/project')
27+
})
28+
29+
it('resolves @slidev/ official prefixed theme', async () => {
30+
const resolver = createResolver('theme', {})
31+
32+
const res = await resolver('official', '/')
33+
34+
expect(res).toEqual([
35+
'@slidev/theme-official',
36+
'/user/project/node_modules/@slidev/theme-official',
37+
],
38+
)
39+
})
40+
41+
it('resolves slidev-theme- third party prefixed theme', async () => {
42+
const resolver = createResolver('theme', {})
43+
44+
const res = await resolver('xyz', '/')
45+
46+
expect(res).toEqual([
47+
'slidev-theme-xyz',
48+
'/user/project/node_modules/slidev-theme-xyz',
49+
],
50+
)
51+
})
52+
53+
it('resolves fully-specified package', async () => {
54+
const resolver = createResolver('theme', {})
55+
56+
const res = await resolver('slidev-theme-full', '/')
57+
58+
expect(res).toEqual([
59+
'slidev-theme-full',
60+
'/user/project/node_modules/slidev-theme-full',
61+
],
62+
)
63+
})
64+
})

vitest.config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { defineConfig } from 'vitest/config'
2+
3+
export default defineConfig({
4+
test: {
5+
projects: ['packages/*', 'test'],
6+
},
7+
})

0 commit comments

Comments
 (0)