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