index.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. code: "import { Input } from '@douyinfe/semi-ui'",
  13. filename: 'packages/semi-ui/table/_story/v2/fixedResizableWithForm.tsx',
  14. },
  15. ],
  16. invalid: [
  17. {
  18. code: "import Input from '@douyinfe/semi-ui'",
  19. filename: 'packages/semi-foundation/input/foundation.ts',
  20. errors: [{ message: messages.unexpected }]
  21. },
  22. {
  23. code: "import { get } from 'lodash-es'",
  24. filename: 'packages/semi-foundation/input/foundation.ts',
  25. output: "import { get } from 'lodash'",
  26. errors: [{ message: messages.unexpectedLodashES }]
  27. },
  28. {
  29. code: "import get from 'lodash-es/get'",
  30. filename: 'packages/semi-ui/input/index.tsx',
  31. output: "import get from 'lodash/get'",
  32. errors: [{ message: messages.unexpectedLodashES }]
  33. },
  34. {
  35. code: "import inputNumberFoundation from '../../semi-foundation/inputNumber/foundation.ts'",
  36. filename: 'packages/semi-ui/inputNumber/index.tsx',
  37. output: "import inputNumberFoundation from '@douyinfe/semi-foundation/inputNumber/foundation.ts'",
  38. errors: [{ message: messages.unexpectedRelativeImport }]
  39. },
  40. {
  41. code: "import Input from '@douyinfe/semi-ui/input/index.tsx'",
  42. filename: 'packages/semi-ui/inputNumber/index.tsx',
  43. errors: [{ message: messages.unexpectedImportSelf }]
  44. },
  45. {
  46. code: "import React from 'react'",
  47. filename: 'packages/semi-foundation/input/foundation.ts',
  48. errors: [{ message: messages.unexpectedReactImport }]
  49. },
  50. {
  51. code: "import React from 'react-dom'",
  52. filename: 'packages/semi-foundation/input/foundation.ts',
  53. errors: [{ message: messages.unexpectedReactImport }]
  54. },
  55. ]
  56. });