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