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 yourselfyarn 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.