Merge branch 'master' into 4951-request-vm
[arvados.git] / apps / workbench / test / integration / jobs_test.rb
index ae6001accc4cbcd59a0dc413e22ddb5d5def8c79..9ab98a051991c2c5736ce59d29e37bd5fbef5783 100644 (file)
@@ -74,42 +74,39 @@ class JobsTest < ActionDispatch::IntegrationTest
   end
 
   [
-    ['foobar', false, false, false],
-    ['job_with_latest_version', true, false, false],
-    ['job_with_latest_version', true, true, false],
-    ['job_with_latest_version', true, true, true],
-  ].each do |job_name, expect_options, use_options, click_option|
+    ['foobar', false, false],
+    ['job_with_latest_version', true, false],
+    ['job_with_latest_version', true, true],
+  ].each do |job_name, expect_options, use_latest|
     test "Rerun #{job_name} job, expect options #{expect_options},
-          use options #{use_options} and click option #{click_option}" do
+          and use latest version option #{use_latest}" do
+      need_javascript
+
       job = api_fixture('jobs')[job_name]
       visit page_with_token 'active', '/jobs/'+job['uuid']
 
-      assert_selector 'a,button', text: 'Re-run same version'
       if expect_options
         assert_text 'supplied_script_version: master'
-        assert_selector 'a,button', text: 'Re-run with options'
       else
         assert_text 'supplied_script_version: (none)'
-        assert_no_selector 'a,button', text: 'Re-run with options'
       end
 
-      # Now re-run the job
-      if use_options
-        assert_triggers_dom_event 'shown.bs.modal' do
-          find('a,button', text: 'Re-run with options...').click
-        end
-        within('.modal-dialog') do
-          assert_selector 'a,button', text: 'Run now'
-          assert_selector 'a,button', text: 'Cancel'
-          page.choose('use_script_same') if click_option
-          find('button', text: 'Run now').click
+      assert_triggers_dom_event 'shown.bs.modal' do
+        find('a,button', text: 'Re-run job...').click
+      end
+      within('.modal-dialog') do
+        assert_selector 'a,button', text: 'Cancel'
+        if use_latest
+          page.choose("job_script_version_#{job['supplied_script_version']}")
         end
-      else
-        find('a,button', text: 'Re-run same version').click
+        click_on "Run now"
       end
 
-      # We see Fiddlesticks, but let's make sure the correct script version is sought.
-      if use_options && !click_option
+      # Re-running jobs doesn't currently work because the test API
+      # server has no git repository to check against.  For now, check
+      # that the correct script version is mentioned in the
+      # Fiddlesticks error message.
+      if expect_options && use_latest
         assert_text "Script version #{job['supplied_script_version']} does not resolve to a commit"
       else
         assert_text "Script version #{job['script_version']} does not resolve to a commit"