index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const rule = require('../lib/rules/index').default;
  2. const RuleTester = require('eslint').RuleTester;
  3. const eslintConfig = require('../.eslintrc.json');
  4. const ruleTester = new RuleTester({ parserOptions: eslintConfig.parserOptions });
  5. const { messages } = rule['no-import'].meta;
  6. ruleTester.run('no-import', rule['no-import'], {
  7. valid: [
  8. {
  9. code: 'var invalidVariable = true',
  10. }
  11. ],
  12. invalid: [
  13. {
  14. code: "import Input from '@douyinfe/semi-ui'",
  15. filename: 'packages/semi-foundation/input/foundation.ts',
  16. errors: [{ message: messages.unexpected }]
  17. },
  18. {
  19. code: "import { get } from 'lodash-es'",
  20. filename: 'packages/semi-foundation/input/foundation.ts',
  21. output: "import { get } from 'lodash'",
  22. errors: [{ message: messages.unexpectedLodashES }]
  23. },
  24. {
  25. code: "import get from 'lodash-es/get'",
  26. filename: 'packages/semi-ui/input/index.tsx',
  27. output: "import get from 'lodash/get'",
  28. errors: [{ message: messages.unexpectedLodashES }]
  29. },
  30. {
  31. code: "import inputNumberFoundation from '../../semi-foundation/inputNumber/foundation.ts'",
  32. filename: 'packages/semi-ui/inputNumber/index.tsx',
  33. output: "import inputNumberFoundation from '@douyinfe/semi-foundation/inputNumber/foundation.ts'",
  34. errors: [{ message: messages.unexpectedRelativeImport }]
  35. },
  36. {
  37. code: "import Input from '@douyinfe/semi-ui/input/index.tsx'",
  38. filename: 'packages/semi-ui/inputNumber/index.tsx',
  39. errors: [{ message: messages.unexpectedImportSelf }]
  40. },
  41. ]
  42. });