Hi everyone, first timer here,

We have been experiencing an intermittent issue and I would like to see if 
someone in here has insight to how we can tackle it.
We are doing our integration tests with Minitest + Capybara and Chrome 
headless driver.

The issue is when a test is finished, the database gets ROLLBACK'd. There 
can still be some unfinished requests running, and crashes may occur if 
they try to access deleted database information.

This most commonly happens because of AJAX requests, and for this, we are 
using a *wait_for_ajax* helper (that we developed ourselves) to wait until 
the Browser has finished with his requests.
The less common problem happens with IMG HTML tags, if their are using an 
endpoint that redirects to another image URL.

Here is an example that for us would cause the issue 100% of the time:
upload_some_images # Uploads images
visit '/list_of_images' # Some page with list of images, you click on the 
image and it opens full-screen in a popup

find('.image-popup-open-button').click # Open image in a popup window
assert_selector '.some-class-must-be-present'

This is a simple test, yet, it will always crash in our case with a 
*ActiveRecord::RecordNotFound 
blob id=xxx* error.
- What happens is that when opening the popup window, an IMG tag with url 
*/files/123* is added to the DOM. The Browser then queries that and gets 
redirected to the ActiveRecord representation URL.
- The integration test is quite simple and validates if some class is 
present, then the test is finished and the database is ROLLBACK'd.
- The browser continues doing his thing and accesses ActiveRecord 
representation URL, which then tries to load a blob that does not exist 
anymore, and result in a crash.

Does anyone ever had such a problem, if so, how did you manage to avoid it?

I hope I am posting this in the right place, sorry if not...
Thank you

TheBean

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/28f7dbd8-2a3a-4fd3-8c9a-82b0f8b26f94%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to