forked from un-ts/eslint-plugin-import-x
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnode-resolver.spec.ts
49 lines (41 loc) · 1.33 KB
/
node-resolver.spec.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
import path from 'node:path'
import { cwd } from 'node:process'
import { createNodeResolver } from '../src/node-resolver'
const resolver = createNodeResolver()
function expectResolve(source: string, expected: boolean | string) {
it(`${source} => ${expected}`, () => {
try {
console.log({
source,
expected,
requireResolve: require.resolve(source, { paths: [__dirname] }),
})
} catch {
console.log({ source, expected, requireResolve: null })
}
const result = resolver.resolve(source, __filename)
console.log({ source, expected, result })
if (typeof expected === 'string') {
expect(result.path).toBe(path.resolve(cwd(), expected))
} else {
expect(result.found).toBe(expected)
}
})
}
describe('builtin', () => {
expectResolve('path', true)
expectResolve('node:path', true)
})
describe('modules', () => {
expectResolve('jest', true)
expectResolve('@sukka/does-not-exists', false)
})
describe('relative', () => {
expectResolve('../package.json', 'package.json')
expectResolve('../.github/dependabot.yml', false)
expectResolve('../babel.config.js', 'babel.config.js')
expectResolve('../test/index.js', 'test/index.js')
expectResolve('../test/', 'test/index.js')
expectResolve('../test', 'test/index.js')
expectResolve('../inexistent.js', false)
})