Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/eslint-plugin-import
Path: blob/main/tests/src/rules/no-webpack-loader-syntax.js
829 views
1
import { test, getTSParsers } from '../utils';
2
3
import { RuleTester } from 'eslint';
4
5
const ruleTester = new RuleTester();
6
const rule = require('rules/no-webpack-loader-syntax');
7
8
const message = 'Do not use import syntax to configure webpack loaders.';
9
10
ruleTester.run('no-webpack-loader-syntax', rule, {
11
valid: [
12
test({ code: 'import _ from "lodash"' }),
13
test({ code: 'import find from "lodash.find"' }),
14
test({ code: 'import foo from "./foo.css"' }),
15
test({ code: 'import data from "@scope/my-package/data.json"' }),
16
test({ code: 'var _ = require("lodash")' }),
17
test({ code: 'var find = require("lodash.find")' }),
18
test({ code: 'var foo = require("./foo")' }),
19
test({ code: 'var foo = require("../foo")' }),
20
test({ code: 'var foo = require("foo")' }),
21
test({ code: 'var foo = require("./")' }),
22
test({ code: 'var foo = require("@scope/foo")' }),
23
],
24
invalid: [
25
test({
26
code: 'import _ from "babel!lodash"',
27
errors: [
28
{ message: `Unexpected '!' in 'babel!lodash'. ${message}` },
29
],
30
}),
31
test({
32
code: 'import find from "-babel-loader!lodash.find"',
33
errors: [
34
{ message: `Unexpected '!' in '-babel-loader!lodash.find'. ${message}` },
35
],
36
}),
37
test({
38
code: 'import foo from "style!css!./foo.css"',
39
errors: [
40
{ message: `Unexpected '!' in 'style!css!./foo.css'. ${message}` },
41
],
42
}),
43
test({
44
code: 'import data from "json!@scope/my-package/data.json"',
45
errors: [
46
{ message: `Unexpected '!' in 'json!@scope/my-package/data.json'. ${message}` },
47
],
48
}),
49
test({
50
code: 'var _ = require("babel!lodash")',
51
errors: [
52
{ message: `Unexpected '!' in 'babel!lodash'. ${message}` },
53
],
54
}),
55
test({
56
code: 'var find = require("-babel-loader!lodash.find")',
57
errors: [
58
{ message: `Unexpected '!' in '-babel-loader!lodash.find'. ${message}` },
59
],
60
}),
61
test({
62
code: 'var foo = require("style!css!./foo.css")',
63
errors: [
64
{ message: `Unexpected '!' in 'style!css!./foo.css'. ${message}` },
65
],
66
}),
67
test({
68
code: 'var data = require("json!@scope/my-package/data.json")',
69
errors: [
70
{ message: `Unexpected '!' in 'json!@scope/my-package/data.json'. ${message}` },
71
],
72
}),
73
],
74
});
75
76
context('TypeScript', function () {
77
getTSParsers().forEach((parser) => {
78
const parserConfig = {
79
parser,
80
settings: {
81
'import/parsers': { [parser]: ['.ts'] },
82
'import/resolver': { 'eslint-import-resolver-typescript': true },
83
},
84
};
85
ruleTester.run('no-webpack-loader-syntax', rule, {
86
valid: [
87
test(Object.assign({
88
code: 'import { foo } from\nalert()',
89
}, parserConfig)),
90
test(Object.assign({
91
code: 'import foo from\nalert()',
92
}, parserConfig)),
93
],
94
invalid: [],
95
});
96
});
97
});
98
99