Files
ionic-framework/core/.eslintrc.js
Liam DeBeasi 3086c9c1ad chore: add lint rule to block toMatchSnapshot usage (#28091)
Issue number: N/A

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

In addition to migrating away from `toMatchSnapshot` as found in PRs
such as https://github.com/ionic-team/ionic-framework/pull/28083, I
think it would be valuable to have a lint rule to prevent developers
from accidentally using this API in the future.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Adds a lint rule which errors if `toMatchSnapshot` is being used in
`*.e2e.ts` files.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

~Note: This PR's lint step will continue to fail until the remaining
`toHaveScreenshot` migration PRs have been merged. Do note merge this PR
until that has been completed.~ All set!

---------

Co-authored-by: Brandy Carney <brandyscarney@users.noreply.github.com>
2023-09-01 14:26:23 +00:00

55 lines
1.3 KiB
JavaScript

module.exports = {
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"@ionic/eslint-config/recommended",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module",
"project": "tsconfig.json"
},
"plugins": [
"@typescript-eslint",
"custom-rules"
],
"rules": {
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-unused-vars": [
"warn",
{
"varsIgnorePattern": "^h$"
}
],
"no-useless-catch": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"no-case-declarations": "off",
"@typescript-eslint/strict-boolean-expressions": [
"error",
{
"allowNullableBoolean": true,
"allowNullableString": true,
"allowAny": true
}
],
"custom-rules/no-component-on-ready-method": "error"
},
"overrides": [
{
"files": ["*.e2e.ts"],
"rules": {
"custom-rules/await-playwright-promise-assertion": "error",
"custom-rules/no-playwright-to-match-snapshot-assertion": "error"
}
}
]
};