mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-14 16:52:26 +08:00

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>
30 lines
851 B
JavaScript
30 lines
851 B
JavaScript
module.exports = {
|
|
meta: {
|
|
messages: {
|
|
noPlaywrightToMatchSnapshotAssertion: '"toHaveScreenshot" assertions should be used in favor of "toMatchSnapshot". "toHaveScreenshot" brings file size reductions and anti-flake behaviors such as disabling animations by default.',
|
|
},
|
|
},
|
|
create(context) {
|
|
return {
|
|
ExpressionStatement(node) {
|
|
if (node.expression.callee === undefined) {
|
|
return;
|
|
}
|
|
|
|
const { property } = node.expression.callee;
|
|
|
|
/**
|
|
* Check to see if toMatchSnapshot is being used
|
|
*/
|
|
if (
|
|
property !== undefined &&
|
|
property.type === 'Identifier' &&
|
|
property.name === 'toMatchSnapshot'
|
|
) {
|
|
context.report({ node: node, messageId: 'noPlaywrightToMatchSnapshotAssertion' });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|