Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/eslint-plugin-import
Path: blob/main/tests/src/rules/no-relative-parent-imports.js
829 views
1
import { RuleTester } from 'eslint';
2
import rule from 'rules/no-relative-parent-imports';
3
import { test as _test, testFilePath } from '../utils';
4
5
const test = def => _test(Object.assign(def, {
6
filename: testFilePath('./internal-modules/plugins/plugin2/index.js'),
7
parser: require.resolve('babel-eslint'),
8
}));
9
10
const ruleTester = new RuleTester();
11
12
ruleTester.run('no-relative-parent-imports', rule, {
13
valid: [
14
test({
15
code: 'import foo from "./internal.js"',
16
}),
17
test({
18
code: 'import foo from "./app/index.js"',
19
}),
20
test({
21
code: 'import foo from "package"',
22
}),
23
test({
24
code: 'require("./internal.js")',
25
options: [{ commonjs: true }],
26
}),
27
test({
28
code: 'require("./app/index.js")',
29
options: [{ commonjs: true }],
30
}),
31
test({
32
code: 'require("package")',
33
options: [{ commonjs: true }],
34
}),
35
test({
36
code: 'import("./internal.js")',
37
}),
38
test({
39
code: 'import("./app/index.js")',
40
}),
41
test({
42
code: 'import(".")',
43
}),
44
test({
45
code: 'import("path")',
46
}),
47
test({
48
code: 'import("package")',
49
}),
50
test({
51
code: 'import("@scope/package")',
52
}),
53
],
54
55
invalid: [
56
test({
57
code: 'import foo from "../plugin.js"',
58
errors: [ {
59
message: 'Relative imports from parent directories are not allowed. Please either pass what you\'re importing through at runtime (dependency injection), move `index.js` to same directory as `../plugin.js` or consider making `../plugin.js` a package.',
60
line: 1,
61
column: 17,
62
} ],
63
}),
64
test({
65
code: 'require("../plugin.js")',
66
options: [{ commonjs: true }],
67
errors: [ {
68
message: 'Relative imports from parent directories are not allowed. Please either pass what you\'re importing through at runtime (dependency injection), move `index.js` to same directory as `../plugin.js` or consider making `../plugin.js` a package.',
69
line: 1,
70
column: 9,
71
} ],
72
}),
73
test({
74
code: 'import("../plugin.js")',
75
errors: [ {
76
message: 'Relative imports from parent directories are not allowed. Please either pass what you\'re importing through at runtime (dependency injection), move `index.js` to same directory as `../plugin.js` or consider making `../plugin.js` a package.',
77
line: 1,
78
column: 8,
79
} ],
80
}),
81
test({
82
code: 'import foo from "./../plugin.js"',
83
errors: [ {
84
message: 'Relative imports from parent directories are not allowed. Please either pass what you\'re importing through at runtime (dependency injection), move `index.js` to same directory as `./../plugin.js` or consider making `./../plugin.js` a package.',
85
line: 1,
86
column: 17,
87
}],
88
}),
89
test({
90
code: 'import foo from "../../api/service"',
91
errors: [ {
92
message: 'Relative imports from parent directories are not allowed. Please either pass what you\'re importing through at runtime (dependency injection), move `index.js` to same directory as `../../api/service` or consider making `../../api/service` a package.',
93
line: 1,
94
column: 17,
95
}],
96
}),
97
test({
98
code: 'import("../../api/service")',
99
errors: [ {
100
message: 'Relative imports from parent directories are not allowed. Please either pass what you\'re importing through at runtime (dependency injection), move `index.js` to same directory as `../../api/service` or consider making `../../api/service` a package.',
101
line: 1,
102
column: 8,
103
}],
104
}),
105
],
106
});
107
108