UNPKG

eslint-plugin-file-export-name

Version:

ESLint plugin to enforce matching file names with default export names.

115 lines (113 loc) 2.96 kB
const { RuleTester } = require("eslint"); const rule = require("../src/index.cjs").rules["match-file-export-name"]; const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2015, sourceType: "module" } }); ruleTester.run("match-file-export-name", rule, { valid: [ { code: "export default MyComponent", filename: "MyComponent.js", options: [{ cases: ["pascal"] }] }, { code: "export default myFunction", filename: "myFunction.js", options: [{ cases: ["camel"] }] }, { code: "export default my_function", filename: "my_function.js", options: [{ cases: ["snake"] }] }, { code: "export default myComponent", filename: "my-component.js", options: [{ cases: ["camel", "kebab"] }] }, { code: "export default Whatever", filename: "index.js" // index 파일은 무시됨 }, { code: "export default IgnoreThis", filename: "special.js", options: [{ cases: ["pascal"], ignore: ["special\\.js"] }] }, { code: "export default CustomName", filename: "anything.js", options: [{ pattern: "^Custom.*$" }] }, { code: "export default MyTsComponent", filename: "MyTsComponent.tsx", options: [{ cases: ["pascal"], extensions: [".tsx"] }] }, { code: "export default MyComponent", filename: "my-component.jsx", options: [{ cases: ["pascal", "kebab"], extensions: [".jsx"] }] }, { code: "export default myFunction", filename: "my_function.js", options: [{ cases: ["camel", "snake"] }] }, { code: "export default CustomHandler", filename: "any-name.js", options: [{ pattern: "^Custom.*$", cases: ["pascal"] }] } ], invalid: [ { code: "export default wrongName", filename: "rightName.js", options: [{ cases: ["camel"] }], errors: [{ messageId: "mismatch", data: { exportName: "wrongName", fileName: "rightName" } }] }, { code: "export default WrongCase", filename: "wrong-case.js", options: [{ cases: ["kebab"] }], errors: [{ messageId: "mismatch", data: { exportName: "WrongCase", fileName: "wrong-case" } }] }, { code: "export default wrongComponent", filename: "WrongComponent.tsx", options: [{ cases: ["pascal"], extensions: [".tsx"] }], errors: [{ messageId: "mismatch", data: { exportName: "wrongComponent", fileName: "WrongComponent" } }] }, { code: "export default NotCustomName", filename: "anything.js", options: [{ pattern: "^Custom.*$" }], errors: [{ messageId: "mismatch", data: { exportName: "NotCustomName", fileName: "anything" } }] } ] });