Path: blob/main/tests/src/rules/no-named-export.js
829 views
import { RuleTester } from 'eslint';1import { test } from '../utils';23const ruleTester = new RuleTester();4const rule = require('rules/no-named-export');56ruleTester.run('no-named-export', rule, {7valid: [8test({9code: 'export default function bar() {};',10}),11test({12code: 'let foo; export { foo as default }',13}),14test({15code: 'export default from "foo.js"',16parser: require.resolve('babel-eslint'),17}),1819// no exports at all20test({21code: `import * as foo from './foo';`,22}),23test({24code: `import foo from './foo';`,25}),26test({27code: `import {default as foo} from './foo';`,28}),29],30invalid: [31test({32code: `33export const foo = 'foo';34export const bar = 'bar';35`,36errors: [{37type: 'ExportNamedDeclaration',38message: 'Named exports are not allowed.',39}, {40type: 'ExportNamedDeclaration',41message: 'Named exports are not allowed.',42}],43}),44test({45code: `46export const foo = 'foo';47export default bar;`,48errors: [{49type: 'ExportNamedDeclaration',50message: 'Named exports are not allowed.',51}],52}),53test({54code: `55export const foo = 'foo';56export function bar() {};57`,58errors: [{59type: 'ExportNamedDeclaration',60message: 'Named exports are not allowed.',61}, {62type: 'ExportNamedDeclaration',63message: 'Named exports are not allowed.',64}],65}),66test({67code: `export const foo = 'foo';`,68errors: [{69type: 'ExportNamedDeclaration',70message: 'Named exports are not allowed.',71}],72}),73test({74code: `75const foo = 'foo';76export { foo };77`,78errors: [{79type: 'ExportNamedDeclaration',80message: 'Named exports are not allowed.',81}],82}),83test({84code: `let foo, bar; export { foo, bar }`,85errors: [{86type: 'ExportNamedDeclaration',87message: 'Named exports are not allowed.',88}],89}),90test({91code: `export const { foo, bar } = item;`,92errors: [{93type: 'ExportNamedDeclaration',94message: 'Named exports are not allowed.',95}],96}),97test({98code: `export const { foo, bar: baz } = item;`,99errors: [{100type: 'ExportNamedDeclaration',101message: 'Named exports are not allowed.',102}],103}),104test({105code: `export const { foo: { bar, baz } } = item;`,106errors: [{107type: 'ExportNamedDeclaration',108message: 'Named exports are not allowed.',109}],110}),111test({112code: `113let item;114export const foo = item;115export { item };116`,117errors: [{118type: 'ExportNamedDeclaration',119message: 'Named exports are not allowed.',120}, {121type: 'ExportNamedDeclaration',122message: 'Named exports are not allowed.',123}],124}),125test({126code: `export * from './foo';`,127errors: [{128type: 'ExportAllDeclaration',129message: 'Named exports are not allowed.',130}],131}),132test({133code: `export const { foo } = { foo: "bar" };`,134errors: [{135type: 'ExportNamedDeclaration',136message: 'Named exports are not allowed.',137}],138}),139test({140code: `export const { foo: { bar } } = { foo: { bar: "baz" } };`,141errors: [{142type: 'ExportNamedDeclaration',143message: 'Named exports are not allowed.',144}],145}),146test({147code: 'export { a, b } from "foo.js"',148parser: require.resolve('babel-eslint'),149errors: [{150type: 'ExportNamedDeclaration',151message: 'Named exports are not allowed.',152}],153}),154test({155code: `export type UserId = number;`,156parser: require.resolve('babel-eslint'),157errors: [{158type: 'ExportNamedDeclaration',159message: 'Named exports are not allowed.',160}],161}),162test({163code: 'export foo from "foo.js"',164parser: require.resolve('babel-eslint'),165errors: [{166type: 'ExportNamedDeclaration',167message: 'Named exports are not allowed.',168}],169}),170test({171code: `export Memory, { MemoryValue } from './Memory'`,172parser: require.resolve('babel-eslint'),173errors: [{174type: 'ExportNamedDeclaration',175message: 'Named exports are not allowed.',176}],177}),178],179});180181182