Skip to content
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

Merged
merged 16 commits into from
Jul 9, 2024
Merged

Conversation

KelvinOm
Copy link
Collaborator

@KelvinOm KelvinOm commented Jul 4, 2024

Description

  1. Add scripts for local e2e testing in the docker container.
  2. Add types for cypress-image-snapshot

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:

  1. Run FE locally and prepare the tests for local launch. See the instructions here.
  2. Run yarn cypress:snapshot:docker:build — this will create a docker container with the necessary environment.
  3. Run 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 set updateSnapshots=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?

  • Yes
  • No

Summary by CodeRabbit

  • New Features

    • Added support for image snapshot testing with the @types/cypress-image-snapshot dependency.
  • Refactor

    • Updated test specifications by removing unnecessary triggerInputInvalidState() calls.
    • Reorganized and improved efficiency of image snapshot methods for various devices.
  • Chores

    • Updated Dockerfile to configure the Cypress environment with specific versions for dependencies.
    • Changed import paths in e2e.js for better module resolution.
  • Style

    • Fixed a comment typo in Cypress plugin configuration.

@KelvinOm KelvinOm requested review from ApekshaBhosale and a team as code owners July 4, 2024 12:28
Copy link
Contributor

coderabbitai bot commented Jul 4, 2024

Walkthrough

The recent updates enhance Cypress testing for various widgets in the Anvil framework, covering Canvas, Preview, and Deploy modes. Additionally, the Dockerfile has been fine-tuned for better Cypress environment configuration. These improvements aim to ensure comprehensive and reliable functionality testing for diverse Anvil widgets.

Changes

File Path Change Summary
app/client/cypress/Dockerfile Updated to configure the Cypress environment with specific versions and set ENTRYPOINT to yarn cypress:snapshot.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts
Introduced new test cases or specifications for various Anvil widgets covering Canvas, Preview, and Deploy modes.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts Updated the test description to focus on the Input Widget instead of the Button Widget, indicating a shift in testing focus.

Poem

In the dock of code so bright,
Cypress tests now take their flight,
Widgets in modes threefold,
Anvil's story well is told.
Snapshots gleam in Canvas light,
Tests ensure our app's delight. 🌟


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?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@KelvinOm KelvinOm changed the title Chore/fix cypress snapshot types chore: cypress snapshot types Jul 4, 2024
@KelvinOm KelvinOm added the ok-to-test Required label for CI label Jul 4, 2024
@github-actions github-actions bot added skip-changelog Adding this label to a PR prevents it from being listed in the changelog and removed ok-to-test Required label for CI labels Jul 4, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 52e8cda and b997cc2.

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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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 script generate: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.

@sagar-qa007
Copy link
Contributor

@coderabbitai full review

Copy link
Contributor

coderabbitai bot commented Jul 4, 2024

Actions performed

Full review triggered.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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

Commits

Files that changed from the base of the PR and between 52e8cda and b997cc2.

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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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 in verifyCanvasMode, verifyPreviewMode, and verifyForDifferentDevices 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 the verifyForDifferentDevices 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 of data-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);
Copy link
Contributor

@coderabbitai coderabbitai bot Jul 4, 2024

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.

Suggested change
cy.wait(5000);
agHelper.WaitUntilElementVisible('selector-for-element-to-wait-for');

Copy link
Contributor

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.

Copy link
Contributor

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!

@KelvinOm KelvinOm force-pushed the chore/fix-cypress-snapshot-types branch 2 times, most recently from b997cc2 to 0c48a56 Compare July 4, 2024 15:56
@KelvinOm KelvinOm added the ok-to-test Required label for CI label Jul 4, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 b997cc2 and 0c48a56.

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

@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jul 4, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 0c48a56 and ae303e3.

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

@KelvinOm KelvinOm added ok-to-test Required label for CI and removed skip-changelog Adding this label to a PR prevents it from being listed in the changelog ok-to-test Required label for CI labels Jul 4, 2024
@KelvinOm KelvinOm force-pushed the chore/fix-cypress-snapshot-types branch from 2bca9d4 to 9e27986 Compare July 4, 2024 17:55
@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jul 4, 2024
@github-actions github-actions bot added the skip-changelog Adding this label to a PR prevents it from being listed in the changelog label Jul 4, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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

@KelvinOm KelvinOm force-pushed the chore/fix-cypress-snapshot-types branch from 9e27986 to 0abadba Compare July 4, 2024 19:20
@KelvinOm KelvinOm removed skip-changelog Adding this label to a PR prevents it from being listed in the changelog ok-to-test Required label for CI labels Jul 4, 2024
@KelvinOm KelvinOm force-pushed the chore/fix-cypress-snapshot-types branch from 618f92f to c0092c4 Compare July 8, 2024 16:48
@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jul 8, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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-out CHROME_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 needed
app/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 and widgetId values.
  • Ensure type and version 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

Commits

Files that changed from the base of the PR and between 618f92f and c0092c4.

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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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.
Use data-* attributes for selectors; avoid Xpaths and CSS attributes.
Avoid selectors like .btn.submit or button[type=submit].
Perform logins via API with LoginFromAPI.
Only interact with controlled sites/servers.
Ensure tests can run with it.only and are independent.
Use before, 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 in before 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 to yarn 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 Level

The root-level structure and properties appear correct. The dsl property is appropriately used to contain the main configuration.


3-17: DSL Object: Main Container Properties

The 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 Objects

The layout objects within the layout array are well-structured and contain necessary properties such as layoutId, layoutType, isDropTarget, and layout.


107-2575: Children Array: Widget Objects

The widget objects within the children array are well-structured and contain necessary properties such as widgetName, type, options, and dynamicBindingPathList. 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 the version and minHeight 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 the layoutId, 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 nested Zone1 widget properties are well-defined. Ensure the widgetId, 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 within Zone1 are consistent. Ensure the widgetId, 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 the textAlign, dynamicHeight, and other properties are correct.


372-850: Verify properties for WDS_HEADING_WIDGETs in Zone1.

The properties for the remaining WDS_HEADING_WIDGETs in Zone1 are consistent. Ensure the widgetId, text, and other properties are correctly referenced.


1065-1175: Check properties for Section2 and nested Zone2 widgets.

The Section2 widget and its nested Zone2 widget properties are well-defined. Ensure the widgetId, 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 within Zone2 are consistent. Ensure the widgetId, 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 in Zone2 are consistent. Ensure the widgetId, text, and other properties are correctly referenced.


1729-1870: Check properties for nested WDS_HEADING_WIDGETs within Zone3.

The nested WDS_HEADING_WIDGET properties within Zone3 are consistent. Ensure the widgetId, 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 in Zone3 are consistent. Ensure the widgetId, text, and other properties are correctly referenced.


2095-2183: Check properties for nested WDS_HEADING_WIDGETs within Zone4.

The nested WDS_HEADING_WIDGET properties within Zone4 are consistent. Ensure the widgetId, 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 in Zone4 are consistent. Ensure the widgetId, text, and other properties are correctly referenced.


2377-2516: Check properties for nested WDS_HEADING_WIDGETs within Zone5.

The nested WDS_HEADING_WIDGET properties within Zone5 are consistent. Ensure the widgetId, 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 in Zone5 are consistent. Ensure the widgetId, 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, and snapRows are consistent with other configurations.


18-101: Verify the nested layout structure.

The nested layout structure is defined correctly. Ensure that all layoutId and widgetId 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, and isVisible 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, and canExtend should be reviewed to ensure they are necessary and used correctly.


103-105: Ensure Dynamic Path Lists are Correctly Defined.

The dynamicTriggerPathList and dynamicBindingPathList 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, and children are correctly defined and used.

app/client/cypress/fixtures/anvilSwitchWidget.json (58)

1-17: Main Container Configuration

The main container configuration appears to be correct. All essential properties like widgetName, backgroundColor, rightColumn, snapColumns, etc., are well-defined.


18-101: Layout Configuration Consistency

The 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 Configuration

The configuration for the Section1 widget follows the expected structure and includes necessary properties like widgetName, isCanvas, displayName, type, etc.


130-158: Zone Widget Configuration in Section1

The Zone1 widget within Section1 is correctly configured. It includes necessary properties and dynamic bindings.


159-208: Switch Widget Configuration in Zone1

The Switch1Copy widget and its copies within Zone1 are correctly configured. Each switch widget has properties like widgetName, 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 Configuration

The overall JSON structure and configuration for the Anvil Switch Widget are correct. All sections, zones, and widgets are well-defined and logically consistent.

Comment on lines +15 to +25
it("1. Canvas Mode", () => {
anvilSnapshot.verifyCanvasMode("SwitchGroupWidget");
});

it("2. Preview Mode", () => {
anvilSnapshot.verifyPreviewMode("SwitchoGroupWidget");
});

it("3. Deploy Mode", () => {
anvilSnapshot.verifyDeployMode("SwitchGroupWidget");
});
Copy link
Contributor

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.

Suggested change
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");
});

Comment on lines +18 to +102
"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
}
}
],
Copy link
Contributor

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

@KelvinOm KelvinOm force-pushed the chore/fix-cypress-snapshot-types branch from c0092c4 to 75f2659 Compare July 8, 2024 17:02
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 c0092c4 and 75f2659.

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

@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jul 8, 2024
Copy link
Contributor

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.

Copy link
Contributor

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.

Copy link
Contributor

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.

Copy link
Contributor

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.

Copy link
Collaborator Author

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 KelvinOm requested a review from jsartisan July 9, 2024 08:29
@ApekshaBhosale
Copy link
Contributor

@KelvinOm LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ok-to-test Required label for CI skip-changelog Adding this label to a PR prevents it from being listed in the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants