index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. code: "import React from 'react'",
  43. filename: 'packages/semi-foundation/input/foundation.ts',
  44. errors: [{ message: messages.unexpectedReactImport }]
  45. },
  46. {
  47. code: "import React from 'react-dom'",
  48. filename: 'packages/semi-foundation/input/foundation.ts',
  49. errors: [{ message: messages.unexpectedReactImport }]
  50. },
  51. ]
  52. });