Skip to content

Conversation

@johnpinto1
Copy link
Contributor

@johnpinto1 johnpinto1 commented Apr 9, 2024

Changes:

  • To deal with missing favicon.ico error ( ActionController::RoutingError: No route matches [GET] "/favicon.ico") : added config/routes_test.rb to add a route will return an empty response with a 200 OK status code when the browser requests the favicon.ico file. Then for test purposes we add the lines to config/encvironments/test.rb: # Add config/routes_test.rb to routes config.paths['config/routes.rb'] << Rails.root.join('config/routes_test.rb')

  • The other outstanding errors arose because in the test environment we sometimes encounter errors like (Selenium::WebDriver::Error::ElementClickInterceptedError: element click intercepted: # Element # is not clickable at point (101, 203). Other element would receive the click:

    ...
    ).
    To get round this we use JS to click on element using code like
    this:
    change_affiliation_input_button = find('input[value="Change affiliation"]')
    execute_script('arguments[0].click();', change_affiliation_input_button)

Changes:
 - To deal with missing favicon.ico error ( ActionController::RoutingError:
       No route matches [GET] "/favicon.ico") :
   added config/routes_test.rb to add a route will return an empty response
   with a 200 OK status code when the browser requests the favicon.ico file.
   Then for test purposes we add the lines to config/encvironments/test.rb:
     # Add config/routes_test.rb to routes
     config.paths['config/routes.rb'] << Rails.root.join('config/routes_test.rb')

  - The other outstanding errors arose because in the test environment
    we sometimes encounter errors like (Selenium::WebDriver::Error::ElementClickInterceptedError: element click intercepted:
    # Element <input type="submit" name="commit" value="Change affiliation" class="btn btn-secondary" data-disable-with="Change affiliation">
    # is not clickable at point (101, 203). Other element would receive
the click: <div id="ui-id-2" tabindex="-1"
class="ui-menu-item-wrapper">...</div>).
    To get round this we use JS to click on element using code like
this:
  change_affiliation_input_button = find('input[value="Change affiliation"]')
   execute_script('arguments[0].click();', change_affiliation_input_button)
@johnpinto1 johnpinto1 force-pushed the fix_rspec_tests_for_bootstrap_upgrade branch from ca2bf8a to 55321d0 Compare April 9, 2024 13:29
:selenium_chrome_headless driver has a default window-size of (800x600). This small window-size seems to result in the `Selenium::WebDriver::Error::ElementClickInterceptedError:`

This commit increases the window-size and also reverts the prior fix for these errors (commit 55321d0)
@johnpinto1
Copy link
Contributor Author

@aaronskiba You fix was neater than mine for the Selenium::WebDriver::Error::ElementClickInterceptedError. Yours is future proof.

@benjaminfaure benjaminfaure merged commit 56759df into development Apr 11, 2024
@benjaminfaure benjaminfaure deleted the fix_rspec_tests_for_bootstrap_upgrade branch April 11, 2024 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants