-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
resolve.test.ts
84 lines (73 loc) Β· 2.42 KB
/
resolve.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import path from 'path';
import resolve from 'resolve';
const FILENAME = path.basename(__filename);
describe(`ResolvePatch`, () => {
it(`should not match a local file that matches the specifier`, () => {
expect(() =>
resolve.sync(FILENAME, {extensions: [`.ts`]}),
).toThrow(`Cannot find module '${FILENAME}'`);
expect(
() => resolve.sync(FILENAME, {
extensions: [`.ts`],
__skipPackageIterator: true,
} as any),
).toThrow(`Cannot find module '${FILENAME}'`);
});
it(`should match a local file when using the paths option`, () => {
expect(
resolve.sync(FILENAME, {
paths: [__dirname],
extensions: [`.ts`],
}),
).toEqual(__filename);
expect(
resolve.sync(FILENAME, {
paths: [__dirname],
extensions: [`.ts`],
__skipPackageIterator: true,
} as any),
).toEqual(__filename);
});
it(`can require a dependency from paths`, () => {
expect(
resolve.sync(`got`, {
paths: [require.resolve(`@yarnpkg/core`)],
}),
).toEqual(require.resolve(`got`, {paths: [require.resolve(`@yarnpkg/core`)]}));
expect(
resolve.sync(`got`, {
paths: [require.resolve(`@yarnpkg/core`)],
__skipPackageIterator: true,
} as any),
).toEqual(require.resolve(`got`, {paths: [require.resolve(`@yarnpkg/core`)]}));
});
it(`can require a dependency from basedir`, () => {
expect(
resolve.sync(`got`, {
basedir: require.resolve(`@yarnpkg/core`),
}),
).toEqual(require.resolve(`got`, {paths: [require.resolve(`@yarnpkg/core`)]}));
expect(
resolve.sync(`got`, {
basedir: require.resolve(`@yarnpkg/core`),
__skipPackageIterator: true,
} as any),
).toEqual(require.resolve(`got`, {paths: [require.resolve(`@yarnpkg/core`)]}));
});
it(`non-absolute paths should return non-absolute result if it can be found from the cwd`, () => {
// This test covers https://github.com/yarnpkg/berry/issues/897
// The behaviour is odd but the patch shouldn't change it
// The cwd when this test runs is the repo root
expect(
resolve.sync(`run-yarn.js`, {
paths: [`scripts`],
}),
).toEqual(`scripts${path.sep}run-yarn.js`);
expect(
resolve.sync(`run-yarn.js`, {
paths: [`scripts`],
__skipPackageIterator: true,
} as any),
).toEqual(`scripts${path.sep}run-yarn.js`);
});
});