-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: cypress snapshot types #34722
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/yarn.lock
is 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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/yarn.lock
is 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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.
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
agHelper
from../../Objects/ObjectsCore
is necessary and correctly used in the file.
13-13
: Locator update looks good.The
appViewerPage
locator 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
, andverifyForDifferentDevices
improves 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 theverifyForDifferentDevices
method 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-testid
attribute looks good.The removal of the
data-testid
attribute 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-snapshots
is 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-snapshot
is correctly added and necessary for the project to enhance type support for image snapshot testing in Cypress.
@@ -13,6 +13,7 @@ describe( | |||
}); | |||
|
|||
it("1. Canvas Mode", () => { | |||
cy.wait(5000); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ApekshaBhosale I have rerun full review and coderabbit gave us comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/yarn.lock
is 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 ae303e39310d017bbfeb11c8b405144bdce4a80f and 9e279862ee552c6593b11c0c3d773640d279a45e.
Files ignored due to path filters (22)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployMacbook.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployMacbook.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployMacbook.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployMacbook.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployMacbook.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployMacbook.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployIpad.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployIphone.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployMacbook.snap.png
is 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Outside diff range and nitpick comments (2)
app/client/cypress/Dockerfile (1)
1-4
: Ensure consistency and update comments.The
ARG
statements define versions for Yarn, Node, and Cypress. The commented-outCHROME_VERSION
argument 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
widgetName
andwidgetId
values.- Ensure
type
andversion
properties are correctly defined.- Verify that
children
arrays 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
Files ignored due to path filters (106)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalLargeSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalMediumSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilModal_spec.ts/anvilModalSmallSize.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchoGroupWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetPreview.snap.png
is excluded by!**/*.png
app/client/yarn.lock
is 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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.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.submit
orbutton[type=submit]
.
Perform logins via API withLoginFromAPI
.
Only interact with controlled sites/servers.
Ensure tests can run withit.only
and are independent.
Usebefore
,beforeEach
,after
,afterEach
correctly; 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 inbefore
hooks.
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.2
as the base image is suitable for Cypress testing.
11-11
: ENTRYPOINT command is appropriate.Setting the
ENTRYPOINT
toyarn cypress:snapshot
is appropriate for running Cypress snapshot tests.
9-9
: Ensure compatibility with Chromium installation.The
RUN
statement 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
dsl
property 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
layout
array are well-structured and contain necessary properties such aslayoutId
,layoutType
,isDropTarget
, andlayout
.
107-2575
: Children Array: Widget ObjectsThe widget objects within the
children
array 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
MainContainer
widget properties are well-defined, but ensure that theversion
andminHeight
properties align with the application's requirements.
19-82
: Verify nested layout structure for MainContainer.The nested layout structure within the
MainContainer
widget 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
Section1
widget and its nestedZone1
widget 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_WIDGET
properties withinZone1
are 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_WIDGET
properties 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_WIDGETs
inZone1
are consistent. Ensure thewidgetId
,text
, and other properties are correctly referenced.
1065-1175
: Check properties for Section2 and nested Zone2 widgets.The
Section2
widget and its nestedZone2
widget 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_WIDGET
properties withinZone2
are 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_WIDGETs
inZone2
are 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_WIDGET
properties withinZone3
are 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_WIDGETs
inZone3
are 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_WIDGET
properties withinZone4
are 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_WIDGETs
inZone4
are 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_WIDGET
properties withinZone5
are 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_WIDGETs
inZone5
are 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
, andsnapRows
are consistent with other configurations.
18-101
: Verify the nested layout structure.The nested layout structure is defined correctly. Ensure that all
layoutId
andwidgetId
values 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
, andisVisible
are defined and have appropriate values.app/client/cypress/fixtures/anvilRadioGroupWidget.json (4)
3-17
: Check for Redundant or Unused Properties.Properties like
backgroundColor
,containerStyle
, andcanExtend
should be reviewed to ensure they are necessary and used correctly.
103-105
: Ensure Dynamic Path Lists are Correctly Defined.The
dynamicTriggerPathList
anddynamicBindingPathList
should 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
, andchildren
are 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
Section1
widget follows the expected structure and includes necessary properties likewidgetName
,isCanvas
,displayName
,type
, etc.
130-158
: Zone Widget Configuration in Section1The
Zone1
widget withinSection1
is correctly configured. It includes necessary properties and dynamic bindings.
159-208
: Switch Widget Configuration in Zone1The
Switch1Copy
widget and its copies withinZone1
are 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
Zone1
are also correctly configured, maintaining consistency with the previous widgets.
258-306
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, ensuring logical consistency and adherence to the expected structure.
307-355
: Switch Widget Configuration in Zone1 (Continued)The switch widgets within
Zone1
continue to be correctly configured, maintaining the overall configuration consistency.
356-404
: Switch Widget Configuration in Zone1 (Continued)The last set of switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
405-453
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
454-502
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
503-551
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
552-600
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
601-649
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
650-698
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
699-747
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
748-796
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
797-845
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
846-894
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
895-943
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
944-992
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
993-1041
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1042-1090
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1091-1139
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
1140-1188
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1189-1237
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1238-1286
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
1287-1335
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1336-1384
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1385-1433
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
1434-1482
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1483-1531
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1532-1580
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
1581-1629
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1630-1678
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1679-1727
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
1728-1776
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1777-1825
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1826-1874
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
1875-1923
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
1924-1972
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
1973-2021
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
2022-2070
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
2071-2119
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
2120-2168
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
2169-2217
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
2218-2266
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
2267-2315
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
2316-2364
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
2365-2413
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
2414-2462
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
2463-2511
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
2512-2560
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
2561-2609
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are correctly configured, completing the logical structure for this zone.
2610-2658
: Switch Widget Configuration in Zone1 (Continued)The final set of switch widgets within
Zone1
maintain the correct structure and configuration, ensuring consistency throughout the zone.
2659-2707
: Switch Widget Configuration in Zone1 (Continued)The remaining switch widgets within
Zone1
are correctly configured, maintaining the expected structure and properties.
2708-2756
: Switch Widget Configuration in Zone1 (Continued)The final switch widgets within
Zone1
are 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.
it("1. Canvas Mode", () => { | ||
anvilSnapshot.verifyCanvasMode("SwitchGroupWidget"); | ||
}); | ||
|
||
it("2. Preview Mode", () => { | ||
anvilSnapshot.verifyPreviewMode("SwitchoGroupWidget"); | ||
}); | ||
|
||
it("3. Deploy Mode", () => { | ||
anvilSnapshot.verifyDeployMode("SwitchGroupWidget"); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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"); | |
}); |
"layout": [ | ||
{ | ||
"layoutId": "w1uzh1www2", | ||
"layoutType": "ALIGNED_LAYOUT_COLUMN", | ||
"layout": [ | ||
{ | ||
"insertChild": true, | ||
"isDropTarget": false, | ||
"isPermanent": false, | ||
"layout": [ | ||
{ | ||
"alignment": "start", | ||
"widgetId": "6cjx3vrmlr", | ||
"widgetType": "SECTION_WIDGET" | ||
} | ||
], | ||
"layoutId": "bdzj4e2iay", | ||
"layoutType": "WIDGET_ROW", | ||
"maxChildLimit": 1 | ||
}, | ||
{ | ||
"insertChild": true, | ||
"isDropTarget": false, | ||
"isPermanent": false, | ||
"layout": [ | ||
{ | ||
"alignment": "start", | ||
"widgetId": "djv3t3rf0r", | ||
"widgetType": "SECTION_WIDGET" | ||
} | ||
], | ||
"layoutId": "xk1plonypl", | ||
"layoutType": "WIDGET_ROW", | ||
"maxChildLimit": 1 | ||
}, | ||
{ | ||
"insertChild": true, | ||
"isDropTarget": false, | ||
"isPermanent": false, | ||
"layout": [ | ||
{ | ||
"alignment": "start", | ||
"widgetId": "zc3lsxvt8q", | ||
"widgetType": "SECTION_WIDGET" | ||
} | ||
], | ||
"layoutId": "puaq8fuk82", | ||
"layoutType": "WIDGET_ROW", | ||
"maxChildLimit": 1 | ||
}, | ||
{ | ||
"insertChild": true, | ||
"isDropTarget": false, | ||
"isPermanent": false, | ||
"layout": [ | ||
{ | ||
"alignment": "start", | ||
"widgetId": "iem3hko8nv", | ||
"widgetType": "SECTION_WIDGET" | ||
} | ||
], | ||
"layoutId": "zdohqnjycx", | ||
"layoutType": "WIDGET_ROW", | ||
"maxChildLimit": 1 | ||
} | ||
], | ||
"layoutStyle": { | ||
"border": "none", | ||
"height": "100%", | ||
"padding": "spacing-4", | ||
"gap": "spacing-4" | ||
}, | ||
"isDropTarget": true, | ||
"isPermanent": true, | ||
"childTemplate": { | ||
"insertChild": true, | ||
"isDropTarget": false, | ||
"isPermanent": false, | ||
"layout": [], | ||
"layoutId": "", | ||
"layoutType": "WIDGET_ROW", | ||
"maxChildLimit": 1 | ||
} | ||
} | ||
], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (102)
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchoGroupWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvas.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvasDark.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployipad-2.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployiphone-6.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeploymacbook-13.snap.png
is excluded by!**/*.png
app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetPreview.snap.png
is 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current locator is generating unreliable snapshots.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When we change the locator, we get snapshots like this :/ not sure if they are reliable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here. Unreliable screenshot due to change of locator.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At some places, it pure transparent and somewhere it is gray background.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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=true
flag 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.Anvil
Spec:
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-snapshot
dependency.Refactor
triggerInputInvalidState()
calls.Chores
Dockerfile
to configure the Cypress environment with specific versions for dependencies.e2e.js
for better module resolution.Style