Conversation
WalkthroughThe recent updates enhance Cypress testing for various widgets in the Anvil framework, covering Canvas, Preview, and Deploy modes. Additionally, the Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (46)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/yarn.lockis excluded by!**/yarn.lock,!**/*.lock
Files selected for processing (7)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (5 hunks)
- app/client/package.json (2 hunks)
- app/client/src/pages/AppViewer/index.tsx (1 hunks)
Files skipped from review due to trivial changes (5)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts
- app/client/src/pages/AppViewer/index.tsx
Additional context used
Path-based instructions (1)
app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (1)
Pattern
app/client/cypress/**/*.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.
Additional comments not posted (6)
app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (4)
20-22: Approved: Updated image snapshot method.The use of
comparisonMethod: "ssim"improves the precision of image comparison.
28-30: Approved: Updated image snapshot method for dark theme.The use of
comparisonMethod: "ssim"improves the precision of image comparison.
42-44: Approved: Updated image snapshot method.The use of
comparisonMethod: "ssim"improves the precision of image comparison.
69-71: Approved: Updated image snapshot method and added delay.The use of
comparisonMethod: "ssim"improves the precision of image comparison. The 500ms delay ensures stability after capturing an image snapshot.app/client/package.json (2)
35-35: Approved: Added scriptgenerate:anvil-snapshots.The script correctly removes Anvil snapshots and runs Cypress tests with specific settings.
86-86: Approved: Added dependency@types/cypress-image-snapshot.The dependency is correctly added and compatible with the project.
...client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts
Outdated
Show resolved
Hide resolved
|
@coderabbitai full review |
Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 1
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (46)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/yarn.lockis excluded by!**/yarn.lock,!**/*.lock
Files selected for processing (7)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (5 hunks)
- app/client/package.json (2 hunks)
- app/client/src/pages/AppViewer/index.tsx (1 hunks)
Additional context used
Path-based instructions (5)
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.
Additional comments not posted (10)
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1)
Line range hint
1-16:
Ensure test coverage for invalid input states.The
triggerInputInvalidState()function call is not present. Verify if testing invalid input states is necessary for the Input Widget.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1)
Line range hint
1-16:
Ensure test coverage for invalid input states.The
triggerInputInvalidState()function call is not present. Verify if testing invalid input states is necessary for the Phone Input Widget.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts (1)
Line range hint
1-16:
Ensure test coverage for invalid input states.The
triggerInputInvalidState()function call is not present. Verify if testing invalid input states is necessary for the Currency Input Widget.app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (4)
1-1: Import statement looks good.The import of
agHelperfrom../../Objects/ObjectsCoreis necessary and correctly used in the file.
13-13: Locator update looks good.The
appViewerPagelocator update from"[data-testid=t--app-viewer-page-body]"to"[data-testid=t--app-viewer-page]"is correct and matches the intended element in the DOM.
20-22: Image snapshot method enhancement looks good.The addition of
comparisonMethod: "ssim"to the image snapshot methods inverifyCanvasMode,verifyPreviewMode, andverifyForDifferentDevicesimproves the accuracy of image comparisons.Also applies to: 28-30, 42-44, 69-71
71-71: Sleep addition looks good.The addition of
agHelper.Sleep(500);after capturing an image snapshot in theverifyForDifferentDevicesmethod ensures stability and consistency in tests without introducing significant performance issues.app/client/src/pages/AppViewer/index.tsx (1)
Line range hint
1-141:
Removal ofdata-testidattribute looks good.The removal of the
data-testidattribute with the value"t--app-viewer-page-body"is consistent with the codebase and does not affect the functionality.app/client/package.json (2)
35-35: New script addition looks good.The new script
generate:anvil-snapshotsis correctly added and necessary for the project to streamline the process of removing old snapshots and running Cypress tests with specific settings.
86-86: New dependency addition looks good.The new dependency
@types/cypress-image-snapshotis correctly added and necessary for the project to enhance type support for image snapshot testing in Cypress.
| }); | ||
|
|
||
| it("1. Canvas Mode", () => { | ||
| cy.wait(5000); |
There was a problem hiding this comment.
Avoid using cy.wait(5000); in Cypress tests.
Using cy.wait(5000); can lead to flaky tests. Consider using a more reliable method to handle timing issues, such as waiting for specific elements or conditions.
- cy.wait(5000);
+ agHelper.WaitUntilElementVisible('selector-for-element-to-wait-for');Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| cy.wait(5000); | |
| agHelper.WaitUntilElementVisible('selector-for-element-to-wait-for'); |
There was a problem hiding this comment.
@ApekshaBhosale I have rerun full review and coderabbit gave us comment.
There was a problem hiding this comment.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
b997cc2 to
0c48a56
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (46)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/yarn.lockis excluded by!**/yarn.lock,!**/*.lock
Files selected for processing (7)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (5 hunks)
- app/client/package.json (1 hunks)
- app/client/src/pages/AppViewer/index.tsx (1 hunks)
Files skipped from review as they are similar to previous changes (7)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts
- app/client/package.json
- app/client/src/pages/AppViewer/index.tsx
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (4 hunks)
Files skipped from review as they are similar to previous changes (1)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts
2bca9d4 to
9e27986
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Commits
Files that changed from the base of the PR and between ae303e3 and 9e279862ee552c6593b11c0c3d773640d279a45e.
Files ignored due to path filters (22)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployMacbook.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployMacbook.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployMacbook.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployMacbook.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployMacbook.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployMacbook.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployIpad.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployIphone.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployMacbook.snap.pngis excluded by!**/*.png
Files selected for processing (1)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts (4 hunks)
Files skipped from review as they are similar to previous changes (1)
- app/client/cypress/support/Pages/Anvil/AnvilSnapshot.ts
9e27986 to
0abadba
Compare
618f92f to
c0092c4
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
Outside diff range and nitpick comments (2)
app/client/cypress/Dockerfile (1)
1-4: Ensure consistency and update comments.The
ARGstatements define versions for Yarn, Node, and Cypress. The commented-outCHROME_VERSIONargument should either be removed or documented clearly if it's not intended for use.- #ARG CHROME_VERSION="126.0.6478.114-1" + # Uncomment and set CHROME_VERSION if specific version is neededapp/client/cypress/fixtures/anvilParagraphWidget.json (1)
1-2525: Ensure JSON properties follow best practices and are consistent.The JSON structure appears correct, but ensure that all widget properties are consistently defined and follow best practices. Here are a few points to consider:
- Use meaningful
widgetNameandwidgetIdvalues.- Ensure
typeandversionproperties are correctly defined.- Verify that
childrenarrays are correctly populated and structured.- Check for redundant or unnecessary properties.
- Ensure
dynamicBindingPathList,dynamicTriggerPathList, and other dynamic properties are correctly defined and used.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Commits
Files that changed from the base of the PR and between 618f92fb9bac92190c70aa76f1cef5a108432d0f and c0092c455755b05816dee1796654f81a4662cb13.
Files ignored due to path filters (106)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchoGroupWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/yarn.lockis excluded by!**/yarn.lock,!**/*.lock
Files selected for processing (19)
- app/client/cypress/Dockerfile (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts (1 hunks)
- app/client/cypress/fixtures/anvilCheckboxGroupWidget.json (1 hunks)
- app/client/cypress/fixtures/anvilCheckboxWidget.json (1 hunks)
- app/client/cypress/fixtures/anvilHeadingWidget.json (1 hunks)
- app/client/cypress/fixtures/anvilParagraphWidget.json (1 hunks)
- app/client/cypress/fixtures/anvilRadioGroupWidget.json (1 hunks)
- app/client/cypress/fixtures/anvilSwitchGroupWidget.json (1 hunks)
- app/client/cypress/fixtures/anvilSwitchWidget.json (1 hunks)
Files not summarized due to errors (7)
- app/client/cypress/fixtures/anvilCheckboxGroupWidget.json: Error: Message exceeds token limit
- app/client/cypress/fixtures/anvilCheckboxWidget.json: Error: Message exceeds token limit
- app/client/cypress/fixtures/anvilHeadingWidget.json: Error: Message exceeds token limit
- app/client/cypress/fixtures/anvilParagraphWidget.json: Error: Message exceeds token limit
- app/client/cypress/fixtures/anvilRadioGroupWidget.json: Error: Message exceeds token limit
- app/client/cypress/fixtures/anvilSwitchGroupWidget.json: Error: Message exceeds token limit
- app/client/cypress/fixtures/anvilSwitchWidget.json: Error: Message exceeds token limit
Files skipped from review as they are similar to previous changes (1)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts
Additional context used
Path-based instructions (17)
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilParagraphWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilCheckboxGroupWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilHeadingWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilSwitchGroupWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilCheckboxWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilRadioGroupWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.app/client/cypress/fixtures/anvilSwitchWidget.json (1)
Pattern
app/client/cypress/**/**.*: Follow best practices for Cypress code and e2e automation.
Avoid using cy.wait in code.
Avoid using cy.pause in code.
Use variables for locators, not strings.
Usedata-*attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like.btn.submitorbutton[type=submit].
Perform logins via API withLoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run withit.onlyand are independent.
Usebefore,beforeEach,after,afterEachcorrectly; clean state before tests.
Check new specs for flakiness by running them 10 times on CI.
Use multiple assertions; don't treat Cypress as unit tests.
Use constants for strings.
Include datasource operations inbeforehooks.
Learnings (1)
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (1)
Learnt from: Aishwarya-U-R PR: appsmithorg/appsmith#29405 File: app/client/cypress/e2e/Regression/ClientSide/Widgets/Radio/Radio2_spec.ts:404-407 Timestamp: 2023-12-08T09:01:51.841Z Learning: The `Radio2_spec.ts` file is not part of the initial phase for the removal of static waits in the pull request titled "test: Cypress | Replace static with Dynamic waits - Part 1".
Additional comments not posted (118)
app/client/cypress/Dockerfile (3)
5-5: Base image selection is appropriate.Using
cypress/factory:4.0.2as the base image is suitable for Cypress testing.
11-11: ENTRYPOINT command is appropriate.Setting the
ENTRYPOINTtoyarn cypress:snapshotis appropriate for running Cypress snapshot tests.
9-9: Ensure compatibility with Chromium installation.The
RUNstatement installs Chromium, which is necessary for Cypress tests. Ensure that the version installed is compatible with the Cypress version used.app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts (2)
1-5: Import statements are appropriate.The import statements correctly bring in necessary modules for testing.
7-27: Tests are well-structured and follow best practices.The tests for the Stats Widget in Canvas, Preview, and Deploy modes are well-structured and adhere to best practices. Ensure that these tests are not flaky by running them multiple times on CI.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts (2)
1-5: Import statements are appropriate.The import statements correctly bring in necessary modules for testing.
7-27: Tests are well-structured and follow best practices.The tests for the Table Widget in Canvas, Preview, and Deploy modes are well-structured and adhere to best practices. Ensure that these tests are not flaky by running them multiple times on CI.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts (2)
1-5: Import statements are appropriate.The import statements correctly bring in necessary modules for testing.
7-27: Tests are well-structured and follow best practices.The tests for the Switch Widget in Canvas, Preview, and Deploy modes are well-structured and adhere to best practices. Ensure that these tests are not flaky by running them multiple times on CI.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts (3)
1-5: Imports look good.The imported constants and helper functions are necessary for the tests.
7-13: Describe block and before hook look good.The describe block correctly sets up the test suite and includes relevant tags. The before hook adds the necessary DSL for the Heading Widget.
15-25: Test cases look good.The test cases correctly verify the Heading Widget in Canvas, Preview, and Deploy modes.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts (3)
1-5: Imports look good.The imported constants and helper functions are necessary for the tests.
7-13: Describe block and before hook look good.The describe block correctly sets up the test suite and includes relevant tags. The before hook adds the necessary DSL for the Checkbox Widget.
15-25: Test cases look good.The test cases correctly verify the Checkbox Widget in Canvas, Preview, and Deploy modes.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts (3)
1-5: Imports look good.The imported constants and helper functions are necessary for the tests.
7-13: Describe block and before hook look good.The describe block correctly sets up the test suite and includes relevant tags. The before hook adds the necessary DSL for the Paragraph Widget.
15-25: Test cases look good.The test cases correctly verify the Paragraph Widget in Canvas, Preview, and Deploy modes.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (3)
1-5: Imports look good.The imported constants and helper functions are necessary for the tests.
7-13: Describe block and before hook look good.The describe block correctly sets up the test suite and includes relevant tags. The before hook adds the necessary DSL for the Radio Group Widget.
15-25: Test cases look good.The test cases correctly verify the Radio Group Widget in Canvas, Preview, and Deploy modes.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts (3)
1-5: Imports look good.The required constants and objects are imported correctly.
7-9: Describe block is well-structured.The describe block sets up the test suite with a meaningful description and appropriate tags.
11-13: Before hook is correctly used.The before hook sets up the initial state for the tests by adding the DSL for the Switch Group Widget.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts (4)
1-6: Imports look good.The required constants and objects are imported correctly.
8-10: Describe block is well-structured.The describe block sets up the test suite with a meaningful description and appropriate tags.
16-18: Before hook is correctly used.The before hook sets up the initial state for the tests by adding the DSL for the Zone and Section Widget.
20-29: It blocks are well-structured.The it blocks define tests for Canvas, Preview, and Deploy modes, following Cypress best practices.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts (4)
1-5: Imports look good.The required constants and objects are imported correctly.
7-9: Describe block is well-structured.The describe block sets up the test suite with a meaningful description and appropriate tags.
11-13: Before hook is correctly used.The before hook sets up the initial state for the tests by adding the DSL for the Checkbox Group Widget.
15-25: It blocks are well-structured.The it blocks define tests for Canvas, Preview, and Deploy modes, following Cypress best practices. The invalid state trigger in the Canvas mode test is a good addition.
app/client/cypress/fixtures/anvilCheckboxGroupWidget.json (4)
1-2: JSON Structure: Root LevelThe root-level structure and properties appear correct. The
dslproperty is appropriately used to contain the main configuration.
3-17: DSL Object: Main Container PropertiesThe properties for the main container widget are well-defined and structured. They include widget name, background color, dimensions, and layout configurations.
18-101: Layout Array: Layout ObjectsThe layout objects within the
layoutarray are well-structured and contain necessary properties such aslayoutId,layoutType,isDropTarget, andlayout.
107-2575: Children Array: Widget ObjectsThe widget objects within the
childrenarray are well-structured and contain necessary properties such aswidgetName,type,options, anddynamicBindingPathList. The configuration appears comprehensive and follows best practices for defining widget properties.app/client/cypress/fixtures/anvilHeadingWidget.json (15)
2-16: Ensure completeness and correctness of properties for MainContainer widget.The
MainContainerwidget properties are well-defined, but ensure that theversionandminHeightproperties align with the application's requirements.
19-82: Verify nested layout structure for MainContainer.The nested layout structure within the
MainContainerwidget looks consistent. Ensure that thelayoutId,layoutType, and other properties are correctly referenced and utilized in the application.
108-135: Check properties for Section1 and nested Zone1 widgets.The
Section1widget and its nestedZone1widget properties are well-defined. Ensure thewidgetId,parentId, and other dynamic properties are correctly referenced.
136-211: Review properties for nested WDS_HEADING_WIDGETs within Zone1.The nested
WDS_HEADING_WIDGETproperties withinZone1are consistent. Ensure thewidgetId,text,fontSize, and other properties align with the intended design.
212-371: Review properties for additional WDS_HEADING_WIDGETs within Zone1.The additional
WDS_HEADING_WIDGETproperties are consistent with the previous ones. Verify that thetextAlign,dynamicHeight, and other properties are correct.
372-850: Verify properties for WDS_HEADING_WIDGETs in Zone1.The properties for the remaining
WDS_HEADING_WIDGETsinZone1are consistent. Ensure thewidgetId,text, and other properties are correctly referenced.
1065-1175: Check properties for Section2 and nested Zone2 widgets.The
Section2widget and its nestedZone2widget properties are well-defined. Ensure thewidgetId,parentId, and other dynamic properties are correctly referenced.
1176-1367: Review properties for nested WDS_HEADING_WIDGETs within Zone2.The nested
WDS_HEADING_WIDGETproperties withinZone2are consistent. Ensure thewidgetId,text,fontSize, and other properties align with the intended design.
1368-1551: Verify properties for WDS_HEADING_WIDGETs in Zone2.The properties for the remaining
WDS_HEADING_WIDGETsinZone2are consistent. Ensure thewidgetId,text, and other properties are correctly referenced.
1729-1870: Check properties for nested WDS_HEADING_WIDGETs within Zone3.The nested
WDS_HEADING_WIDGETproperties withinZone3are consistent. Ensure thewidgetId,text,fontSize, and other properties align with the intended design.
1871-2042: Verify properties for WDS_HEADING_WIDGETs in Zone3.The properties for the remaining
WDS_HEADING_WIDGETsinZone3are consistent. Ensure thewidgetId,text, and other properties are correctly referenced.
2095-2183: Check properties for nested WDS_HEADING_WIDGETs within Zone4.The nested
WDS_HEADING_WIDGETproperties withinZone4are consistent. Ensure thewidgetId,text,fontSize, and other properties align with the intended design.
2184-2324: Verify properties for WDS_HEADING_WIDGETs in Zone4.The properties for the remaining
WDS_HEADING_WIDGETsinZone4are consistent. Ensure thewidgetId,text, and other properties are correctly referenced.
2377-2516: Check properties for nested WDS_HEADING_WIDGETs within Zone5.The nested
WDS_HEADING_WIDGETproperties withinZone5are consistent. Ensure thewidgetId,text,fontSize, and other properties align with the intended design.
Line range hint
2517-2683: Verify properties for WDS_HEADING_WIDGETs in Zone5.The properties for the remaining
WDS_HEADING_WIDGETsinZone5are consistent. Ensure thewidgetId,text, and other properties are correctly referenced.app/client/cypress/fixtures/anvilSwitchGroupWidget.json (2)
1-2755: Ensure consistency in widget configurations.The JSON structure appears to be well-formed and consistent. However, ensure that all widget properties are correctly configured and no properties are missing.
163-2631: Review widget properties for correctness.Ensure that the properties like
isVisible,isDisabled,label, etc., are correctly configured for each widget. Verify that the widget IDs are unique and no properties are missing.app/client/cypress/fixtures/anvilCheckboxWidget.json (3)
3-17: Ensure consistent property values for the main container.The properties for the main container widget are defined correctly. Verify that the values such as
rightColumn,snapColumns, andsnapRowsare consistent with other configurations.
18-101: Verify the nested layout structure.The nested layout structure is defined correctly. Ensure that all
layoutIdandwidgetIdvalues are unique and correctly referenced.
160-1030: Check the properties of individual checkbox widgets.The properties of each checkbox widget are defined correctly. Ensure that all required properties such as
widgetId,label,defaultCheckedState, andisVisibleare defined and have appropriate values.app/client/cypress/fixtures/anvilRadioGroupWidget.json (4)
3-17: Check for Redundant or Unused Properties.Properties like
backgroundColor,containerStyle, andcanExtendshould be reviewed to ensure they are necessary and used correctly.
103-105: Ensure Dynamic Path Lists are Correctly Defined.The
dynamicTriggerPathListanddynamicBindingPathListshould be reviewed to ensure they are correctly defined and used.
1-2: Ensure JSON Formatting and Schema Consistency.The JSON structure should be validated against the expected schema to ensure consistency and correctness.
106-2142: Review Children Widgets for Correctness and Consistency.Each child widget should be reviewed for correctness and consistency. Ensure properties like
widgetName,type,widgetId, andchildrenare correctly defined and used.app/client/cypress/fixtures/anvilSwitchWidget.json (58)
1-17: Main Container ConfigurationThe main container configuration appears to be correct. All essential properties like
widgetName,backgroundColor,rightColumn,snapColumns, etc., are well-defined.
18-101: Layout Configuration ConsistencyThe layout configuration within the main container is consistent and logically structured. Each layout item has correct properties, and the overall layout structure is maintained.
108-124: Section Widget ConfigurationThe configuration for the
Section1widget follows the expected structure and includes necessary properties likewidgetName,isCanvas,displayName,type, etc.
130-158: Zone Widget Configuration in Section1The
Zone1widget withinSection1is correctly configured. It includes necessary properties and dynamic bindings.
159-208: Switch Widget Configuration in Zone1The
Switch1Copywidget and its copies withinZone1are correctly configured. Each switch widget has properties likewidgetName,displayName,type,label, etc., appropriately defined.
209-257: Switch Widget Configuration in Zone1 (Continued)The additional switch widgets within
Zone1are also correctly configured, maintaining consistency with the previous widgets.
258-306: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, ensuring logical consistency and adherence to the expected structure.
307-355: Switch Widget Configuration in Zone1 (Continued)The switch widgets within
Zone1continue to be correctly configured, maintaining the overall configuration consistency.
356-404: Switch Widget Configuration in Zone1 (Continued)The last set of switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
405-453: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
454-502: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
503-551: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
552-600: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
601-649: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
650-698: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
699-747: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
748-796: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
797-845: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
846-894: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
895-943: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
944-992: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
993-1041: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1042-1090: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1091-1139: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
1140-1188: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1189-1237: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1238-1286: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
1287-1335: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1336-1384: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1385-1433: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
1434-1482: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1483-1531: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1532-1580: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
1581-1629: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1630-1678: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1679-1727: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
1728-1776: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1777-1825: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1826-1874: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
1875-1923: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
1924-1972: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
1973-2021: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
2022-2070: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
2071-2119: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
2120-2168: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
2169-2217: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
2218-2266: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
2267-2315: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
2316-2364: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
2365-2413: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
2414-2462: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
2463-2511: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
2512-2560: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
2561-2609: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
2610-2658: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1maintain the correct structure and configuration, ensuring consistency throughout the zone.
2659-2707: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1are correctly configured, maintaining the expected structure and properties.
2708-2756: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1are correctly configured, completing the logical structure for this zone.
2757-2777: JSON Structure and ConfigurationThe overall JSON structure and configuration for the Anvil Switch Widget are correct. All sections, zones, and widgets are well-defined and logically consistent.
There was a problem hiding this comment.
Fix typo in the Preview mode test.
There is a typo in the widget name for the Preview mode test. It should be "SwitchGroupWidget".
- anvilSnapshot.verifyPreviewMode("SwitchoGroupWidget");
+ anvilSnapshot.verifyPreviewMode("SwitchGroupWidget");Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| it("1. Canvas Mode", () => { | |
| anvilSnapshot.verifyCanvasMode("SwitchGroupWidget"); | |
| }); | |
| it("2. Preview Mode", () => { | |
| anvilSnapshot.verifyPreviewMode("SwitchoGroupWidget"); | |
| }); | |
| it("3. Deploy Mode", () => { | |
| anvilSnapshot.verifyDeployMode("SwitchGroupWidget"); | |
| }); | |
| it("1. Canvas Mode", () => { | |
| anvilSnapshot.verifyCanvasMode("SwitchGroupWidget"); | |
| }); | |
| it("2. Preview Mode", () => { | |
| anvilSnapshot.verifyPreviewMode("SwitchGroupWidget"); | |
| }); | |
| it("3. Deploy Mode", () => { | |
| anvilSnapshot.verifyDeployMode("SwitchGroupWidget"); | |
| }); |
There was a problem hiding this comment.
Tip
Codebase Verification
Inconsistency Found in Layout Structure
The top-level object in the layout array is missing the maxChildLimit property, while the nested objects within it have this property. Please ensure that all objects in the layout array consistently include the maxChildLimit property.
- File:
app/client/cypress/fixtures/anvilRadioGroupWidget.json - Lines: 18-102
Analysis chain
Review Layout Structure for Consistency.
The layout structure should be consistent and follow a logical order. Ensure that properties like layoutId, layoutType, and maxChildLimit are used correctly.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Validate the layout structure for consistency.
# Test: Use jq to check the layout structure. Expect: Consistent and logical structure.
jq '.dsl.layout[] | has("layoutId") and has("layoutType") and has("maxChildLimit")' app/client/cypress/fixtures/anvilRadioGroupWidget.json
Length of output: 146
Script:
#!/bin/bash
# Description: Inspect each object in the layout array and check for missing properties.
# Print each object in the layout array with missing properties highlighted.
jq '.dsl.layout[] | {layoutId: has("layoutId"), layoutType: has("layoutType"), maxChildLimit: has("maxChildLimit"), object: .}' app/client/cypress/fixtures/anvilRadioGroupWidget.json
Length of output: 2261
c0092c4 to
75f2659
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Commits
Files that changed from the base of the PR and between c0092c455755b05816dee1796654f81a4662cb13 and 75f2659.
Files ignored due to path filters (102)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchoGroupWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvas.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvasDark.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployipad-2.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployiphone-6.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeploymacbook-13.snap.pngis excluded by!**/*.pngapp/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetPreview.snap.pngis excluded by!**/*.png
Files selected for processing (1)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts
There was a problem hiding this comment.
The current locator is generating unreliable snapshots.
There was a problem hiding this comment.
When we change the locator, we get snapshots like this :/ not sure if they are reliable.
There was a problem hiding this comment.
Same here. Unreliable screenshot due to change of locator.
There was a problem hiding this comment.
At some places, it pure transparent and somewhere it is gray background.
There was a problem hiding this comment.
I can't say that these screenshots are unreliable. They are like that due to the specifics of taking screenshots by cypress. We can set the height of the images (make it the same as the height of the viewport), but I would not like to do this now. If there are any difficulties with these screenshots, we will change them later.
|
@KelvinOm LGTM |
Description
In this PR, I also added the following PRS as they affect screenshot tests as well. I did this to speed up the process and unblock the team.
#34528
#34546
#34676
#34729
#34638
#34639
#34511
To run E2E tests locally in docker, you need to do the following:
yarn cypress:snapshot:docker:build— this will create a docker container with the necessary environment.yarn cypress:snapshot:docker "./cypress/e2e/Regression/ClientSide/Anvil/Widgets/*_spec.ts" updateSnapshots=false. Here we can use the path to a specific file, or setupdateSnapshots=trueflag to update the screenshots.Automation
/ok-to-test tags="@tag.Anvil"
🔍 Cypress test results
Tip
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/9844579277
Commit: 75f2659
Cypress dashboard.
Tags:
@tag.AnvilSpec:
Mon, 08 Jul 2024 18:37:36 UTC
Communication
Should the DevRel and Marketing teams inform users about this change?
Summary by CodeRabbit
New Features
@types/cypress-image-snapshotdependency.Refactor
triggerInputInvalidState()calls.Chores
Dockerfileto configure the Cypress environment with specific versions for dependencies.e2e.jsfor better module resolution.Style