Commit 8f90de2

mo khan <mo@mokhan.ca>
2016-05-06 02:23:48
wait for xhr to finish.
1 parent b49a475
Changed files (3)
db/migrate/20160430155822_create_user_sessions.rb
@@ -1,11 +1,7 @@
 class CreateUserSessions < ActiveRecord::Migration
   def change
     create_table :user_sessions, id: :uuid do |t|
-      t.belongs_to :user,
-        foreign_key: true,
-        type: :uuid,
-        index: true,
-        null: false
+      t.belongs_to :user, foreign_key: true, type: :uuid, index: true, null: false
       t.string :ip
       t.text :user_agent
       t.datetime :accessed_at
spec/features/gyms_spec.rb
@@ -32,6 +32,7 @@ feature "Gyms", type: :feature do
 
       it "returns gyms that match the search criteria", js: true do
         subject.visit_page
+        subject.wait_for_ajax
         subject.search("sait")
 
         expect(subject).to be_on_page
spec/support/page_model.rb
@@ -16,6 +16,13 @@ class PageModel
     current_path == page_path
   end
 
+  def wait_for_ajax
+    yield if block_given?
+    Timeout.timeout(Capybara.default_max_wait_time) do
+      loop until finished_all_ajax_requests?
+    end
+  end
+
   def login_with(username, password)
     LoginPage.new.tap do |login_page|
       login_page.visit_page
@@ -23,9 +30,17 @@ class PageModel
     end
   end
 
+  def pretty_print
+    Nokogiri::HTML(page.html)
+  end
+
   private
 
   def translate(key)
     I18n.translate(key)
   end
+
+  def finished_all_ajax_requests?
+    page.evaluate_script('jQuery.active').zero?
+  end
 end