Merge branch '3382-always-show-inputs' (closes #3382)
[arvados.git] / apps / workbench / test / integration / pipeline_instances_test.rb
index 4aea40858f2a439098b3f9d05eac984d85571d62..6bb78906bb10e3ccf8fad4442bae9ba7a3917cec 100644 (file)
@@ -63,6 +63,26 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest
     end
     wait_for_ajax
 
+    # The input, after being specified, should still be displayed (#3382)
+    assert find('div.form-group', text: 'Foo/bar pair')
+
+    # The input, after being specified, should still be editable (#3382)
+    find('div.form-group', text: 'Foo/bar pair').
+      find('.btn', text: 'Choose').
+      click
+
+    within('.modal-dialog') do
+      assert(has_text?("Foo/bar pair"),
+             "pipeline input picker missing name of input")
+      wait_for_ajax
+      first('span', text: 'foo_tag').click
+      find('button', text: 'OK').click
+    end
+    wait_for_ajax
+
+    # For good measure, check one last time that the input, after being specified twice, is still be displayed (#3382)
+    assert find('div.form-group', text: 'Foo/bar pair')
+
     # Ensure that the collection's portable_data_hash, uuid and name
     # are saved in the desired places. (#4015)
 
@@ -309,6 +329,9 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest
     end
     wait_for_ajax
 
+    # The input, after being specified, should still be displayed (#3382)
+    assert find('div.form-group', text: 'Foo/bar pair')
+
     # Ensure that the collection's portable_data_hash, uuid and name
     # are saved in the desired places. (#4015)
 
@@ -382,11 +405,13 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest
     ['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 more than #{expected_min} and less than #{expected_max}" do
+          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
 
@@ -406,7 +431,8 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest
       found_count = found_items.count
       if expected_min == expected_max
         assert_equal(true, found_count == expected_min,
-          "Not found expected number of items. Expected at least #{expected_min} and found #{found_count}")
+          "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}")