Skip to content

Instantly share code, notes, and snippets.

@jrafanie
Last active June 13, 2025 14:54
Show Gist options
  • Save jrafanie/fb894e61e0877dbd202bce8bce42410a to your computer and use it in GitHub Desktop.
Save jrafanie/fb894e61e0877dbd202bce8bce42410a to your computer and use it in GitHub Desktop.
ManageIQ Cypress TODO list

Improve development, testing, and workflow:

  • Test with config/puma.rb with lower thread count since we have less cores in github actions
  • Add cypress-grep or similar to be able to tag tests and run them individually by tag (smoketest, simulate_worker, db_mutate)
    • The last tag, db_mutate, could help us track tests that mutate the database so we can eventually move to using something like cypress-rails to rollback changes done in the test automatically.
  • Provide more interfaces for automatically starting dependent processes
    • bundle exec rake spec:cypress - automatically expands rate limit, starts our rails server, starts a simulated worker process, etc.
    • yarn cypress:open - doesn't do any of that... you have to do this yourself
    • yarn cypress:run:chrome - same as above...
    • We should automatically start with CYPRESS=true from these or make it clear so devs know to use that to run without miq_debug notifications and slow code reloading.
    • Maybe we can have these yarn commands in package.json automatically do these things so we don't have to remember?
  • Investigate firefox slowness Previously used the command below and found lots of messages like cypress:server:browsers:bidi_automation continuing request ID: 20561 +191ms "cypress:run:firefox": "DEBUG='cypress:*,-cypress:util*,-cypress:server:remote*' cypress run --headless --browser firefox"
  • Track down more sporadic test failures that are continually retrying in cypress tests in github. Many are timing issues. Others are test contanimation ones.
  • Try to login once and setup the browser session using the same session - similar to how we reuse the ui_session in the API
  • Create more saved commands for common workflows for navigation. For example, typing often kicks off an ajax form_changed that should be waited on before navigating to the next thing. This will requried normalizing id/class etc. so we can more easily navigate and read tests.
  • Investigate component testing for testing each UI component.
  • Investigate https://glebbahmutov.com/blog/cypress-parallel-free/ https://github.com/bahmutov/cypress-split for running cypress in github actions in parallel
  • Disable any other browser features that are either slowing down tests or causing issues, such as the autofill communication (ManageIQ/manageiq-ui-classic#9461)

Testing:

  • Create tests for various previously reported issues such as missing save button, save button not lighting up on edits, etc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment