X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f644e242ef37c911ad3dc25aca8135c339de349..8b873a9b3b8865a4d451263e48b49122b9c32759:/apps/workbench/test/integration/jobs_test.rb diff --git a/apps/workbench/test/integration/jobs_test.rb b/apps/workbench/test/integration/jobs_test.rb index 8a60a84459..7b510f2be9 100644 --- a/apps/workbench/test/integration/jobs_test.rb +++ b/apps/workbench/test/integration/jobs_test.rb @@ -8,8 +8,6 @@ require 'tmpdir' require 'integration_helper' class JobsTest < ActionDispatch::IntegrationTest - include KeepWebConfig - setup do need_javascript end @@ -22,120 +20,12 @@ class JobsTest < ActionDispatch::IntegrationTest StringIO.new content, 'r' end - test "add job description" do - job = api_fixture('jobs')['nearly_finished_job'] - visit page_with_token("active", "/jobs/#{job['uuid']}") - - # edit job description - within('.arv-description-as-subtitle') do - find('.fa-pencil').click - find('.editable-input textarea').set('*Textile description for job* - "Go to dashboard":/') - find('.editable-submit').click - end - - # Verify edited description - assert_no_text '*Textile description for job*' - assert_text 'Textile description for job' - assert_selector 'a[href="/"]', text: 'Go to dashboard' - end - - test "view job log" do - job = api_fixture('jobs')['job_with_real_log'] - - IO.expects(:popen).returns(fakepipe_with_log_data) - - visit page_with_token("active", "/jobs/#{job['uuid']}") - assert page.has_text? job['script_version'] - - find(:xpath, "//a[@href='#Log']").click - wait_for_ajax - assert page.has_text? 'Started at' - assert page.has_text? 'Finished at' - assert page.has_text? 'log message 1' - assert page.has_text? 'log message 2' - assert page.has_text? 'log message 3' - assert page.has_no_text? 'Showing only 100 bytes of this log' - end - - test 'view partial job log' do - # This config will be restored during teardown by ../test_helper.rb: - Rails.configuration.log_viewer_max_bytes = 100 - - IO.expects(:popen).returns(fakepipe_with_log_data) - job = api_fixture('jobs')['job_with_real_log'] - - visit page_with_token("active", "/jobs/#{job['uuid']}") - assert page.has_text? job['script_version'] - - find(:xpath, "//a[@href='#Log']").click - wait_for_ajax - assert page.has_text? 'Showing only 100 bytes of this log' - end - - test 'view log via keep-web redirect' do - use_keep_web_config - - token = api_fixture('api_client_authorizations')['active']['api_token'] - logdata = fakepipe_with_log_data.read - logblock = `echo -n #{logdata.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip - assert $?.success?, $? - - job = nil - use_token 'active' do - job = Job.find api_fixture('jobs')['running']['uuid'] - mtxt = ". #{logblock} 0:#{logdata.length}:#{job.uuid}.log.txt\n" - logcollection = Collection.create(manifest_text: mtxt) - job.update_attributes log: logcollection.portable_data_hash - end - visit page_with_token 'active', '/jobs/'+job.uuid - find('a[href="#Log"]').click - assert_text 'log message 1' - end - - [ - ['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}, - and use latest version option #{use_latest}" do - job = api_fixture('jobs')[job_name] - visit page_with_token 'active', '/jobs/'+job['uuid'] - - if expect_options - assert_text 'supplied_script_version: master' - else - assert_no_text 'supplied_script_version' - end - - 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 - click_on "Run now" - end - - # Re-running jobs doesn't currently work because the test API - # server has no git repository to check against. For now, check - # that the error message says something appropriate for that - # situation. - if expect_options && use_latest - assert_text "077ba2ad3ea24a929091a9e6ce545c93199b8e57" - else - assert_text "Script version #{job['script_version']} does not resolve to a commit" - end - end - end - [ ['active', true], ['job_reader2', false], ].each do |user, readable| test "view job with components as #{user} user" do + Rails.configuration.Users.AnonymousUserToken = "" job = api_fixture('jobs')['running_job_with_components'] component1 = api_fixture('jobs')['completed_job_in_publicly_accessible_project'] component2 = api_fixture('pipeline_instances')['running_pipeline_with_complete_job']