Skip to content

Conversation

@AlexSkrypnyk
Copy link
Member

@AlexSkrypnyk AlexSkrypnyk commented Aug 26, 2025

Summary by CodeRabbit

  • Tests
    • Refined browser automation configuration to improve reliability and consistency of end-to-end tests across environments.
    • Introduced support for reduced-motion preferences to better reflect accessibility settings during test runs.
    • Streamlined and standardized launch options and inline comments to reduce flakiness and clarify intent.

@github-project-automation github-project-automation bot moved this to BACKLOG in Vortex Aug 26, 2025
@AlexSkrypnyk AlexSkrypnyk self-assigned this Aug 26, 2025
@coderabbitai
Copy link

coderabbitai bot commented Aug 26, 2025

Walkthrough

Update to behat.yml modifies Selenium Chrome options: reorders goog:chromeOptions args, adds --force-prefers-reduced-motion, and aligns inline comments with their respective flags.

Changes

Cohort / File(s) Summary
Behat Selenium Chrome options
behat.yml
Reordered goog:chromeOptions args; added --force-prefers-reduced-motion; retained existing flags (e.g., --disable-gpu) but repositioned; adjusted inline comments to match options.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I tweak my flags with nimble paws,
To quiet Chrome and tame its jaws.
Reduced motion, smoother night—
Tests hop on in steady light.
A whisker twitch, configs align,
Green burrows glow: “All specs fine.” 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/reduced-motion-behat

🪧 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>, please review it.
    • 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.
  • 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 gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

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

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • 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.

@AlexSkrypnyk AlexSkrypnyk added this to the 25.8.0 milestone Aug 26, 2025
@AlexSkrypnyk AlexSkrypnyk enabled auto-merge (rebase) August 26, 2025 03:29
@github-actions github-actions bot temporarily deployed to commit August 26, 2025 03:31 Inactive
Copy link

@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: 4

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4b9f1a7 and 92b4c13.

⛔ Files ignored due to path filters (2)
  • .vortex/installer/tests/Fixtures/install/_baseline/behat.yml is excluded by !.vortex/installer/tests/Fixtures/**
  • .vortex/installer/tests/Fixtures/install/hosting_acquia/behat.yml is excluded by !.vortex/installer/tests/Fixtures/**
📒 Files selected for processing (1)
  • behat.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (13)
  • GitHub Check: build (1)
  • GitHub Check: build (0)
  • GitHub Check: vortex-test-installer (8.4)
  • GitHub Check: vortex-test-installer (8.3)
  • GitHub Check: vortex-test-installer (8.2)
  • GitHub Check: vortex-test-deployment (1)
  • GitHub Check: vortex-test-workflow (3)
  • GitHub Check: vortex-test-deployment (0)
  • GitHub Check: vortex-test-workflow (1)
  • GitHub Check: vortex-test-workflow (2)
  • GitHub Check: vortex-test-workflow (0)
  • GitHub Check: vortex-test-common
  • GitHub Check: vortex-test-docs
🔇 Additional comments (1)
behat.yml (1)

45-45: Confirmed: --force-prefers-reduced-motion Is Supported in Your CI Chrome Image

  • The switch appears in the official Chromium command-line switches list (last updated 2025-08-24), confirming it’s present in current stable Chrome builds (peter.sh).
  • The underlying CSS media query (prefers-reduced-motion) has been supported since Chrome 74 (caniuse.com).
  • Headless Chrome respects this flag just like desktop mode; there are no known headless-specific caveats.

(Optional) You can still add the sanity check in your FeatureContext to assert at runtime that window.matchMedia('(prefers-reduced-motion: reduce)').matches is true.

Comment on lines +40 to +47
- '--disable-extensions' # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
- '--disable-popup-blocking' # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
- '--disable-translate' # Disables the built-in translation feature, preventing Chrome from offering to translate pages.
- '--force-prefers-reduced-motion' # Forces Chrome to respect prefers-reduced-motion CSS media query, disabling animations and transitions.
- '--no-first-run' # Skips the initial setup screen that Chrome typically shows when running for the first time.
- '--test-type' # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Minor copy edits in comments for precision

Two comment tweaks improve clarity.

-                - '--disable-extensions'           # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
+                - '--disable-extensions'           # Disables all Chrome extensions to avoid interference during tests.
-                - '--force-prefers-reduced-motion' # Forces Chrome to respect prefers-reduced-motion CSS media query, disabling animations and transitions.
+                - '--force-prefers-reduced-motion' # Forces prefers-reduced-motion: reduce; helps disable animations/transitions for deterministic timing.
📝 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
- '--disable-extensions' # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
- '--disable-popup-blocking' # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
- '--disable-translate' # Disables the built-in translation feature, preventing Chrome from offering to translate pages.
- '--force-prefers-reduced-motion' # Forces Chrome to respect prefers-reduced-motion CSS media query, disabling animations and transitions.
- '--no-first-run' # Skips the initial setup screen that Chrome typically shows when running for the first time.
- '--test-type' # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
- '--disable-extensions' # Disables all Chrome extensions to avoid interference during tests.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
- '--disable-popup-blocking' # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
- '--disable-translate' # Disables the built-in translation feature, preventing Chrome from offering to translate pages.
- '--force-prefers-reduced-motion' # Forces prefers-reduced-motion: reduce; helps disable animations/transitions for deterministic timing.
- '--no-first-run' # Skips the initial setup screen that Chrome typically shows when running for the first time.
- '--test-type' # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
🤖 Prompt for AI Agents
In behat.yml around lines 40 to 47, two comment lines need minor copy edits for
precision: update the '--disable-infobars' comment to clearly state it hides
Chrome's automation/info bar used for automation warnings (e.g., "Hides Chrome's
infobar that notifies about automation or other messages."), and tighten the
'--test-type' comment to indicate it suppresses test-related security warnings
and should be used cautiously (e.g., "Suppresses security/UI warnings related to
automated testing; use with caution."). Apply these two concise comment
replacements to improve clarity.

🧹 Nitpick (assertive)

Consider adding headless, fixed viewport, and /dev/shm mitigations for CI stability

For deterministic layouts and fewer CI crashes in containerized environments, it’s typical to include a fixed window size and mitigate shared memory limits. Also, if your stack isn’t already forcing headless via the Selenium image, setting it explicitly improves reproducibility.

Apply this diff to extend the args list:

               args:
                 # Options to increase stability and speed.
                 - '--disable-extensions'           # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
                 - '--disable-gpu'                  # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
                 - '--disable-infobars'             # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
                 - '--disable-popup-blocking'       # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
                 - '--disable-translate'            # Disables the built-in translation feature, preventing Chrome from offering to translate pages.
                 - '--force-prefers-reduced-motion' # Forces Chrome to respect prefers-reduced-motion CSS media query, disabling animations and transitions.
                 - '--no-first-run'                 # Skips the initial setup screen that Chrome typically shows when running for the first time.
                 - '--test-type'                    # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
+                - '--disable-dev-shm-usage'        # Avoid crashes when /dev/shm is small in Docker; write shared memory files to /tmp instead.
+                - '--headless=new'                 # Ensure headless mode explicitly for CI consistency (Chrome 109+).
+                - '--window-size=1365,768'         # Fixed viewport for deterministic responsive breakpoints and screenshots.

Note: if the Selenium image already runs Chrome headless, including --headless=new is harmless and documents intent.

If you prefer not to enable headless, at least keep --window-size=... to stabilize breakpoints and screenshot dimensions.

📝 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
- '--disable-extensions' # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
- '--disable-popup-blocking' # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
- '--disable-translate' # Disables the built-in translation feature, preventing Chrome from offering to translate pages.
- '--force-prefers-reduced-motion' # Forces Chrome to respect prefers-reduced-motion CSS media query, disabling animations and transitions.
- '--no-first-run' # Skips the initial setup screen that Chrome typically shows when running for the first time.
- '--test-type' # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
args:
# Options to increase stability and speed.
- '--disable-extensions' # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
- '--disable-popup-blocking' # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
- '--disable-translate' # Disables the built-in translation feature, preventing Chrome from offering to translate pages.
- '--force-prefers-reduced-motion' # Forces Chrome to respect prefers-reduced-motion CSS media query, disabling animations and transitions.
- '--no-first-run' # Skips the initial setup screen that Chrome typically shows when running for the first time.
- '--test-type' # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
- '--disable-dev-shm-usage' # Avoid crashes when /dev/shm is small in Docker; write shared memory files to /tmp instead.
- '--headless=new' # Ensure headless mode explicitly for CI consistency (Chrome 109+).
- '--window-size=1365,768' # Fixed viewport for deterministic responsive breakpoints and screenshots.
🤖 Prompt for AI Agents
In behat.yml around lines 40-47, the Chrome args lack explicit headless, fixed
viewport and /dev/shm mitigations which improve CI stability; append flags to
the args list: add --headless=new (or omit if you deliberately don’t want
headless), add a fixed window size such as --window-size=1366,768 to stabilize
layouts/screenshots, and add --disable-dev-shm-usage to mitigate container
shared-memory crashes; update the YAML args array to include those three flags
(or at minimum keep --window-size if you opt out of headless).

- '--test-type' # Disables certain security features and UI components that are unnecessary for automated testing, making Chrome more suitable for test environments.
- '--disable-extensions' # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Re-evaluate --disable-gpu usage in modern headless runs

In modern Chrome headless (--headless=new), --disable-gpu is generally unnecessary; Chrome won’t attempt to use a GPU. Keeping it doesn’t usually hurt, but it’s redundant and can be removed to simplify the set. If you keep it, tweak the comment for clarity.

Apply this diff to improve the comment:

-                - '--disable-gpu'                  # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
+                - '--disable-gpu'                  # Redundant in modern headless Chrome; safe to remove. Keep only if running non-headless in environments without GPU.

If your environment is non-headless (e.g., XVFB), keeping --disable-gpu may still be useful. Please confirm how Chrome is launched in your Selenium container.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In behat.yml around line 42, the comment for the Chrome flag `--disable-gpu`
should be updated: either remove the `--disable-gpu` flag if you run Chrome with
modern headless mode (`--headless=new`) because it’s redundant, or keep the flag
but change the comment to note it’s only needed for non-headless or XVFB
environments; also add a short verification note requesting confirmation of how
Chrome is launched in the Selenium container (headless vs XVFB) so the team can
decide to remove or retain the flag.

- '--disable-extensions' # Disables all installed Chrome extensions. Useful in testing environments to avoid interference from extensions.
- '--disable-gpu' # Disables hardware acceleration required in containers and cloud-based instances (like CI runners) where GPU is not available.
- '--disable-infobars' # Hides the infobar that Chrome displays for various notifications, like warnings when opening multiple tabs.
- '--disable-popup-blocking' # Disables the popup blocker, allowing all popups to appear. Useful in testing scenarios where popups are expected.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Beware of broad --disable-popup-blocking; can surface non-deterministic popups

Allowing all popups can introduce flakiness if the app (or extensions, though disabled) triggers unexpected windows/tabs. Prefer opening required popups via explicit user gestures in tests and keep blocking on, unless you have known flows that depend on popups.

If no scenarios truly require popups, consider removing this flag. Otherwise, add a Behat step guard that closes/handles new windows deterministically after the popup-triggering action.

I can propose a small helper in FeatureContext to detect and close unexpected windows if needed.

🤖 Prompt for AI Agents
In behat.yml around line 43, the configuration includes the broad
'--disable-popup-blocking' flag which may allow unexpected popups and introduce
flakiness; remove this flag if no scenarios require popups, or keep it only when
needed and add deterministic handling in tests. If popups are required, revert
the flag to keep blocking by default and implement a Behat step/helper in
FeatureContext that, immediately after the action that triggers a popup, detects
any new window handles and closes or switches back to the main window
programmatically to ensure deterministic behavior; alternatively, add a guarded
step to explicitly open popups via simulated user gestures so tests remain
stable.

@codecov
Copy link

codecov bot commented Aug 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.26%. Comparing base (821ee00) to head (92b4c13).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #1945   +/-   ##
========================================
  Coverage    76.26%   76.26%           
========================================
  Files           87       87           
  Lines         5392     5392           
  Branches        35       35           
========================================
  Hits          4112     4112           
  Misses        1280     1280           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@AlexSkrypnyk AlexSkrypnyk merged commit 9fa4a52 into develop Aug 26, 2025
30 checks passed
@AlexSkrypnyk AlexSkrypnyk deleted the feature/reduced-motion-behat branch August 26, 2025 04:57
@github-project-automation github-project-automation bot moved this from BACKLOG to Release queue in Vortex Aug 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants