Project

General

Profile

Actions

Defect #44321

open

Random test failure in OauthProviderSystemTest due to incomplete sign out

Added by Mizuki ISHIKAWA 2 days ago. Updated 2 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Code cleanup/refactoring
Target version:
-
Resolution:
Affected version:

Description

OauthProviderSystemTest#test_application_creation_and_authorization fails randomly.

Failure:
OauthProviderSystemTest#test_application_creation_and_authorization [test/application_system_test_case.rb:76]:
expected "/" to equal "/login" 

bin/rails test test/system/oauth_provider_test.rb:10

The failing assertion is assert_current_path '/login' in log_user (test/application_system_test_case.rb:76).
This test signs in as a different user after calling sign_out_user, but in rare cases the sign out has not completed by the time log_user starts, which seems to be what makes the test fail.

Actions #1

Updated by Mizuki ISHIKAWA 2 days ago

I think this can be resolved by waiting for the redirection to complete before proceeding to the next step, as shown below.

diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
index a03768908..d3cf229d0 100644
--- a/test/application_system_test_case.rb
+++ b/test/application_system_test_case.rb
@@ -85,6 +85,8 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
   def sign_out_user
     find('#account .dropdown-trigger').click
     click_link 'Sign out'
+    # Make sure the redirection after the sign out has completed
+    assert_current_path '/', :ignore_query => true
   end

   def wait_for_ajax

Actions

Also available in: Atom PDF