X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/318c49002aea966128a9d37ab29e601a104d79bb..23825c0b5ecf436b29a36a1c27efe1120485827e:/apps/workbench/test/controllers/container_requests_controller_test.rb diff --git a/apps/workbench/test/controllers/container_requests_controller_test.rb b/apps/workbench/test/controllers/container_requests_controller_test.rb index 6f5a6daa10..bd2f6beb6b 100644 --- a/apps/workbench/test/controllers/container_requests_controller_test.rb +++ b/apps/workbench/test/controllers/container_requests_controller_test.rb @@ -38,23 +38,52 @@ class ContainerRequestsControllerTest < ActionController::TestCase get :show, {id: uuid}, session_for(:active) assert_response :success - assert_includes @response.body, "href=\"/container_requests/#{uuid}/copy\"" + assert_includes @response.body, "action=\"/container_requests/#{uuid}/copy\"" end - test "container request copy" do - completed_cr = api_fixture('container_requests')['completed'] - post(:copy, - { - id: completed_cr['uuid'] - }, - session_for(:active)) - assert_response 302 - copied_cr = assigns(:object) - assert_not_nil copied_cr - assert_equal 'Uncommitted', copied_cr[:state] - assert_equal "Copy of #{completed_cr['name']}", copied_cr['name'] - assert_equal completed_cr['cmd'], copied_cr['cmd'] - assert_equal completed_cr['runtime_constraints']['ram'], copied_cr['runtime_constraints'][:ram] + [ + ['completed', false, false], + ['completed', true, false], + ['completed-older', false, true], + ['completed-older', true, true], + ].each do |cr_fixture, reuse_enabled, uses_acr| + test "container request #{uses_acr ? '' : 'not'} using arvados-cwl-runner copy #{reuse_enabled ? 'with' : 'without'} reuse enabled" do + completed_cr = api_fixture('container_requests')[cr_fixture] + # Set up post request params + copy_params = {id: completed_cr['uuid']} + if reuse_enabled + copy_params.merge!({use_existing: true}) + end + post(:copy, copy_params, session_for(:active)) + assert_response 302 + copied_cr = assigns(:object) + assert_not_nil copied_cr + assert_equal 'Uncommitted', copied_cr[:state] + assert_equal "Copy of #{completed_cr['name']}", copied_cr['name'] + assert_equal completed_cr['cmd'], copied_cr['cmd'] + assert_equal completed_cr['runtime_constraints']['ram'], copied_cr['runtime_constraints'][:ram] + if reuse_enabled + assert copied_cr[:use_existing] + else + refute copied_cr[:use_existing] + end + # If the CR's command is arvados-cwl-runner, the appropriate flag should + # be passed to it + if uses_acr + if reuse_enabled + # arvados-cwl-runner's default behavior is to enable reuse + assert_includes copied_cr['command'], 'arvados-cwl-runner' + assert_not_includes copied_cr['command'], '--disable-reuse' + else + assert_includes copied_cr['command'], 'arvados-cwl-runner' + assert_includes copied_cr['command'], '--disable-reuse' + assert_not_includes copied_cr['command'], '--enable-reuse' + end + else + # If no arvados-cwl-runner is being used, the command should be left alone + assert_equal completed_cr['command'], copied_cr['command'] + end + end end [