closes #4062
[arvados.git] / apps / workbench / test / integration / projects_test.rb
index f0d612b6252e7a814fdfc63d7a674f98552e638f..67abcc9d110eeab8eed13fb5177a7201f219d02e 100644 (file)
@@ -490,6 +490,10 @@ class ProjectsTest < ActionDispatch::IntegrationTest
     ['project with 201 collections', 201], # two pages of data
   ].each do |project_name, amount|
     test "scroll collections tab for #{project_name} with #{amount} objects" do
+      headless = Headless.new
+      headless.start
+      Capybara.current_driver = :selenium
+
       visit page_with_token 'user1_with_load'
 
       find("#projects-menu").click
@@ -513,13 +517,10 @@ class ProjectsTest < ActionDispatch::IntegrationTest
       unexpected_items = []
       collections_count = 0
       within('.arv-project-Data_collections') do
-        scrollbar_present = page.execute_script("return document.documentElement.scrollHeight>document.documentElement.clientHeight;");
-        if scrollbar_present
-          page.execute_script "window.scrollBy(0,10000)"
-          begin
-            wait_for_ajax
-          rescue
-          end
+        page.execute_script "window.scrollBy(0,999000)"
+        begin
+          wait_for_ajax
+        rescue
         end
 
         # Visit all rows. If not all expected collections are found, retry
@@ -527,7 +528,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest
         collections_count = found_collections.count
 
         (0..collections_count-1).each do |i|
-          # Found row text would be of the format "Show Collection_#{n} " 
+          # Found row text would be of the format "Show Collection_#{n} "
           collection_name = found_collections[i].text.split[1]
           if !my_collections.include? collection_name
             unexpected_items << collection_name
@@ -537,23 +538,22 @@ class ProjectsTest < ActionDispatch::IntegrationTest
         end
 
         assert_equal true, unexpected_items.empty?, "Found unexpected items #{unexpected_items.inspect}"
-        if amount > 200
-          assert_equal 200, collections_count, "Found different number of collections"
-          assert_equal amount-200, verify_collections.length, "Did not find all the collections"  
-        else
-          assert_equal amount, collections_count, "Found different number of collections"
-          assert_equal true, verify_collections.empty?, "Did not find all the collections"
-        end
+        assert_equal amount, collections_count, "Found different number of collections"
+        assert_equal true, verify_collections.empty?, "Did not find all the collections"
       end
     end
   end
 
   [
     ['project with 10 pipelines', 10, 0],
-    ['project with 20 pipelines and jobs', 20, 20],
-#    ['project with 250 pipelines', 250, 0],
+    ['project with 200 jobs and 10 pipelines', 10, 200],
+    ['project with 25 pipelines', 25, 0],
   ].each do |project_name, num_pipelines, num_jobs|
     test "scroll pipeline instances tab for #{project_name} with #{num_pipelines} pipelines and #{num_jobs} jobs" do
+      headless = Headless.new
+      headless.start
+      Capybara.current_driver = :selenium
+
       visit page_with_token 'user1_with_load'
 
       find("#projects-menu").click
@@ -572,24 +572,21 @@ class ProjectsTest < ActionDispatch::IntegrationTest
         wait_for_ajax
       rescue
       end
-      
+
       verify_pipelines = my_pipelines.dup
       unexpected_items = []
       object_count = 0
       within('.arv-project-Jobs_and_pipelines') do
-        scrollbar_present = page.execute_script("return document.documentElement.scrollHeight>document.documentElement.clientHeight;");
-        if scrollbar_present
-          page.execute_script "window.scrollBy(0,10000)"
-          begin
-            wait_for_ajax
-          rescue
-          end
+        page.execute_script "window.scrollBy(0,999000)"
+        begin
+          wait_for_ajax
+        rescue
         end
 
         # Visit all rows. Repeat if not all expected my_pipelines are found (inifinite scrolling should kick in)
         pipelines_found = page.all('tr[data-kind="arvados#pipelineInstance"]')
-        pipeline_count = pipelines_found.count
-        (0..pipeline_count-1).each do |i|
+        found_pipeline_count = pipelines_found.count
+        (0..found_pipeline_count-1).each do |i|
           name = pipelines_found[i].text.split[1]
           if !my_pipelines.include? name
             unexpected_items << name
@@ -599,12 +596,13 @@ class ProjectsTest < ActionDispatch::IntegrationTest
 
           assert_equal true, unexpected_items.empty?, "Found unexpected items #{unexpected_items.inspect}"
         end
-        assert_equal num_pipelines, pipeline_count, "Found different number of pipelines"
-        assert_equal true, verify_pipelines.empty?, "Did not find all the pipelines"
 
         jobs_found = page.all('tr[data-kind="arvados#job"]')
-        job_count = jobs_found.count
-        assert_equal num_jobs, job_count, 'Did not find expected number of jobs'
+        found_job_count = jobs_found.count
+
+        assert_equal num_pipelines, found_pipeline_count, "Found different number of pipelines and jobs"
+        assert_equal num_jobs, found_job_count, 'Did not find expected number of jobs'
+        assert_equal true, verify_pipelines.empty?, "Did not find all the pipelines and jobs"
       end
     end
   end