prefer-strict-equal.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _utils = require("./utils");
  7. var _default = (0, _utils.createRule)({
  8. name: __filename,
  9. meta: {
  10. docs: {
  11. category: 'Best Practices',
  12. description: 'Suggest using `toStrictEqual()`',
  13. recommended: false,
  14. suggestion: true
  15. },
  16. messages: {
  17. useToStrictEqual: 'Use `toStrictEqual()` instead',
  18. suggestReplaceWithStrictEqual: 'Replace with `toStrictEqual()`'
  19. },
  20. type: 'suggestion',
  21. schema: [],
  22. hasSuggestions: true
  23. },
  24. defaultOptions: [],
  25. create(context) {
  26. return {
  27. CallExpression(node) {
  28. const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
  29. if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'expect') {
  30. return;
  31. }
  32. const {
  33. matcher
  34. } = jestFnCall;
  35. if ((0, _utils.isSupportedAccessor)(matcher, 'toEqual')) {
  36. context.report({
  37. messageId: 'useToStrictEqual',
  38. node: matcher,
  39. suggest: [{
  40. messageId: 'suggestReplaceWithStrictEqual',
  41. fix: fixer => [(0, _utils.replaceAccessorFixer)(fixer, matcher, _utils.EqualityMatcher.toStrictEqual)]
  42. }]
  43. });
  44. }
  45. }
  46. };
  47. }
  48. });
  49. exports.default = _default;