Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/eslint-plugin-import
Path: blob/main/tests/src/rules/no-relative-packages.js
829 views
1
import { RuleTester } from 'eslint';
2
import rule from 'rules/no-relative-packages';
3
import { normalize } from 'path';
4
5
import { test, testFilePath } from '../utils';
6
7
const ruleTester = new RuleTester();
8
9
ruleTester.run('no-relative-packages', rule, {
10
valid: [
11
test({
12
code: 'import foo from "./index.js"',
13
filename: testFilePath('./package/index.js'),
14
}),
15
test({
16
code: 'import bar from "../bar"',
17
filename: testFilePath('./package/index.js'),
18
}),
19
test({
20
code: 'import {foo} from "a"',
21
filename: testFilePath('./package-named/index.js'),
22
}),
23
test({
24
code: 'const bar = require("../bar.js")',
25
filename: testFilePath('./package/index.js'),
26
}),
27
test({
28
code: 'const bar = require("../not/a/file/path.js")',
29
filename: testFilePath('./package/index.js'),
30
}),
31
test({
32
code: 'import "package"',
33
filename: testFilePath('./package/index.js'),
34
}),
35
test({
36
code: 'require("../bar.js")',
37
filename: testFilePath('./package/index.js'),
38
}),
39
],
40
41
invalid: [
42
test({
43
code: 'import foo from "./package-named"',
44
filename: testFilePath('./bar.js'),
45
errors: [ {
46
message: 'Relative import from another package is not allowed. Use `package-named` instead of `./package-named`',
47
line: 1,
48
column: 17,
49
} ],
50
}),
51
test({
52
code: 'import foo from "../package-named"',
53
filename: testFilePath('./package/index.js'),
54
errors: [ {
55
message: 'Relative import from another package is not allowed. Use `package-named` instead of `../package-named`',
56
line: 1,
57
column: 17,
58
} ],
59
}),
60
test({
61
code: 'import foo from "../package-scoped"',
62
filename: testFilePath('./package/index.js'),
63
errors: [ {
64
message: `Relative import from another package is not allowed. Use \`${normalize('@scope/package-named')}\` instead of \`../package-scoped\``,
65
line: 1,
66
column: 17,
67
} ],
68
}),
69
test({
70
code: 'import bar from "../bar"',
71
filename: testFilePath('./package-named/index.js'),
72
errors: [ {
73
message: `Relative import from another package is not allowed. Use \`${normalize('eslint-plugin-import/tests/files/bar')}\` instead of \`../bar\``,
74
line: 1,
75
column: 17,
76
} ],
77
}),
78
],
79
});
80
81