Path: blob/main/tests/src/rules/no-relative-parent-imports.js
829 views
import { RuleTester } from 'eslint';1import rule from 'rules/no-relative-parent-imports';2import { test as _test, testFilePath } from '../utils';34const test = def => _test(Object.assign(def, {5filename: testFilePath('./internal-modules/plugins/plugin2/index.js'),6parser: require.resolve('babel-eslint'),7}));89const ruleTester = new RuleTester();1011ruleTester.run('no-relative-parent-imports', rule, {12valid: [13test({14code: 'import foo from "./internal.js"',15}),16test({17code: 'import foo from "./app/index.js"',18}),19test({20code: 'import foo from "package"',21}),22test({23code: 'require("./internal.js")',24options: [{ commonjs: true }],25}),26test({27code: 'require("./app/index.js")',28options: [{ commonjs: true }],29}),30test({31code: 'require("package")',32options: [{ commonjs: true }],33}),34test({35code: 'import("./internal.js")',36}),37test({38code: 'import("./app/index.js")',39}),40test({41code: 'import(".")',42}),43test({44code: 'import("path")',45}),46test({47code: 'import("package")',48}),49test({50code: 'import("@scope/package")',51}),52],5354invalid: [55test({56code: 'import foo from "../plugin.js"',57errors: [ {58message: '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.',59line: 1,60column: 17,61} ],62}),63test({64code: 'require("../plugin.js")',65options: [{ commonjs: true }],66errors: [ {67message: '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.',68line: 1,69column: 9,70} ],71}),72test({73code: 'import("../plugin.js")',74errors: [ {75message: '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.',76line: 1,77column: 8,78} ],79}),80test({81code: 'import foo from "./../plugin.js"',82errors: [ {83message: '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.',84line: 1,85column: 17,86}],87}),88test({89code: 'import foo from "../../api/service"',90errors: [ {91message: '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.',92line: 1,93column: 17,94}],95}),96test({97code: 'import("../../api/service")',98errors: [ {99message: '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.',100line: 1,101column: 8,102}],103}),104],105});106107108