-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils.test.ts
63 lines (54 loc) · 2.64 KB
/
utils.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import fs from 'node:fs'
import path from 'node:path'
import { ExternalOption } from 'rollup'
import {
type InlineConfig,
type RollupCommonJSOptions,
} from 'vite'
import {
describe,
expect,
it,
} from 'vitest'
import {
nodeModules,
resolvePackageJson,
withCommonjsIgnoreBuiltins,
withExternalBuiltins,
} from '../src/utils'
describe('src/utils', () => {
it('withCommonjsIgnoreBuiltins', async () => {
const builtins = ['electron', ...nodeModules]
const getCommonjsConfig = (ignore: RollupCommonJSOptions['ignore']): InlineConfig => ({ build: { commonjsOptions: { ignore } } })
const ignore_array: RollupCommonJSOptions['ignore'] = ['electron']
const ignore_function: RollupCommonJSOptions['ignore'] = id => ['electron'].includes(id)
const ignore_arr = withCommonjsIgnoreBuiltins(getCommonjsConfig(ignore_array), nodeModules)
.build?.commonjsOptions?.ignore! as string[]
expect(ignore_arr).toEqual(builtins)
const ignore_fun = withCommonjsIgnoreBuiltins(getCommonjsConfig(ignore_function), nodeModules)
.build?.commonjsOptions?.ignore! as ((id: string) => boolean)
expect(ignore_fun('electron')).true
})
it('withExternalBuiltins', async () => {
const builtins: ExternalOption[] = nodeModules
const external_string: ExternalOption = 'electron'
const external_array: ExternalOption = ['electron']
const external_regexp: ExternalOption = /electron/
const external_function: ExternalOption = source => ['electron'].includes(source)
const getExternalConfig = (external: ExternalOption): InlineConfig => ({ build: { rollupOptions: { external } } })
const external_str = withExternalBuiltins(getExternalConfig(external_string), nodeModules)?.build?.rollupOptions?.external!
expect(external_str).toEqual(builtins.concat(external_string))
const external_arr = withExternalBuiltins(getExternalConfig(external_array), nodeModules)?.build?.rollupOptions?.external!
expect(external_arr).toEqual(builtins.concat(external_array))
const external_reg = withExternalBuiltins(getExternalConfig(external_regexp), nodeModules)?.build?.rollupOptions?.external!
expect(external_reg).toEqual(builtins.concat(external_regexp))
const external_fun = withExternalBuiltins(getExternalConfig(external_function), nodeModules)?.build?.rollupOptions?.external!
expect((external_fun as (source: string) => boolean)('electron')).true
})
it('resolvePackageJson', async () => {
const root = path.join(__dirname, '..')
const json = await resolvePackageJson(root)
const json2 = JSON.parse(await fs.promises.readFile(path.join(root, 'package.json'), 'utf8'))
expect(json).toEqual(json2)
})
})