X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9325dabcc2b6c32a589ba86cc052946b4875eb1d..b1f65fcd4fa5fca5400f63fa25823fef6229a158:/apps/workbench/test/integration/pipeline_instances_test.rb diff --git a/apps/workbench/test/integration/pipeline_instances_test.rb b/apps/workbench/test/integration/pipeline_instances_test.rb index 027616b8da..5089d27366 100644 --- a/apps/workbench/test/integration/pipeline_instances_test.rb +++ b/apps/workbench/test/integration/pipeline_instances_test.rb @@ -365,4 +365,58 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest "Time difference did not match for start_at #{start_at}, finished_at #{finished_at}, ran_for #{match[2]}") end end + + [ + ['fuse', nil, 2, 20], # has 2 as of 11-07-2014 + ['fuse', 'FUSE project', 1, 1], # 1 with this name + ['user1_with_load', nil, 30, 100], # has 37 as of 11-07-2014 + ['user1_with_load', 'pipeline_10', 2, 2], # 2 with this name + ['user1_with_load', '000010pipelines', 10, 10], # owned_by the project zzzzz-j7d0g-000010pipelines + ['user1_with_load', '000025pipelines', 25, 25], # owned_by the project zzzzz-j7d0g-000025pipelines, two pages + ['admin', nil, 40, 200], + ['admin', 'FUSE project', 1, 1], + ['admin', 'pipeline_10', 2, 2], + ['active', 'containing at least two', 2, 100], # component description + ['admin', 'containing at least two', 2, 100], + ['active', nil, 10, 100], + ['active', 'no such match', 0, 0], + ].each do |user, search_filter, expected_min, expected_max| + test "scroll pipeline instances page for #{user} with search filter #{search_filter} + and expect #{expected_min} <= found_items <= #{expected_max}" do + visit page_with_token(user, "/pipeline_instances") + + if search_filter + find('.recent-pipeline-instances-filterable-control').set(search_filter) + # Wait for 250ms debounce timer (see filterable.js) + sleep 0.350 + wait_for_ajax + end + + page_scrolls = expected_max/20 + 2 # scroll num_pages+2 times to test scrolling is disabled when it should be + within('.arv-recent-pipeline-instances') do + (0..page_scrolls).each do |i| + page.execute_script "window.scrollBy(0,999000)" + begin + wait_for_ajax + rescue + end + end + end + + # Verify that expected number of pipeline instances are found + found_items = page.all('tr[data-kind="arvados#pipelineInstance"]') + found_count = found_items.count + if expected_min == expected_max + assert_equal(true, found_count == expected_min, + "Not found expected number of items. Expected #{expected_min} and found #{found_count}") + assert page.has_no_text? 'request failed' + else + assert_equal(true, found_count>=expected_min, + "Found too few items. Expected at least #{expected_min} and found #{found_count}") + assert_equal(true, found_count<=expected_max, + "Found too many items. Expected at most #{expected_max} and found #{found_count}") + end + end + end + end