X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2eaa77dc327c024f2faa3fbd322e7054454b6442..231a86fd3f7e30e9f66d71d92ad7c26578637e37:/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 338280684e..adfd62bd8e 100644 --- a/apps/workbench/test/integration/pipeline_instances_test.rb +++ b/apps/workbench/test/integration/pipeline_instances_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'integration_helper' class PipelineInstancesTest < ActionDispatch::IntegrationTest @@ -136,9 +140,9 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest click_link 'API response' api_response = JSON.parse(find('div#advanced_api_response pre').text) input_params = api_response['components']['part-one']['script_parameters']['input'] - assert_equal input_params['value'], collection['portable_data_hash'] - assert_equal input_params['selection_name'], collection['name'] - assert_equal input_params['selection_uuid'], collection['uuid'] + assert_equal collection['portable_data_hash'], input_params['value'] + assert_equal collection['name'], input_params['selection_name'] + assert_equal collection['uuid'], input_params['selection_uuid'] # "Run" button is now enabled page.assert_no_selector 'a.disabled,button.disabled', text: 'Run' @@ -389,6 +393,7 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest def create_and_run_pipeline_in_aproject in_aproject, template_name, collection_fixture, choose_file=false # collection in aproject to be used as input collection = api_fixture('collections', collection_fixture) + collection['name'] ||= '' # API response is "" even if fixture attr is null # create a pipeline instance find('.btn', text: 'Run a process').click @@ -417,7 +422,7 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest if collection_fixture == 'foo_collection_in_aproject' first('span', text: 'foo_tag').click - elsif collection['name'] + elsif collection['name'] != '' first('span', text: "#{collection['name']}").click else collection_uuid = collection['uuid'] @@ -441,13 +446,13 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest api_response = JSON.parse(find('div#advanced_api_response pre').text) input_params = api_response['components']['part-one']['script_parameters']['input'] - assert_equal(input_params['selection_uuid'], collection['uuid'], "Not found expected input param uuid") + assert_equal(collection['uuid'], input_params['selection_uuid'], "Not found expected input param uuid") if choose_file - assert_equal(input_params['value'], collection['portable_data_hash']+'/foo', "Not found expected input file param value") - assert_equal(input_params['selection_name'], collection['name']+'/foo', "Not found expected input file param name") + assert_equal(collection['portable_data_hash']+'/foo', input_params['value'], "Not found expected input file param value") + assert_equal(collection['name']+'/foo', input_params['selection_name'], "Not found expected input file param name") else - assert_equal(input_params['value'], collection['portable_data_hash'], "Not found expected input param value") - assert_equal(input_params['selection_name'], collection['name'], "Not found expected input selection name") + assert_equal(collection['portable_data_hash'], input_params['value'], "Not found expected input param value") + assert_equal(collection['name'], input_params['selection_name'], "Not found expected input selection name") end # "Run" button present and enabled @@ -472,30 +477,22 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest need_selenium 'to parse timestamps correctly across DST boundaries' visit page_with_token(user, "/pipeline_instances/#{uuid}") - assert page.has_text? 'This pipeline started at' - page_text = page.text - + regexp = "This pipeline started at (.+?)\\. " if run_time - match = /This pipeline started at (.*)\. It failed after (.*) at (.*)\. Check the Log/.match page_text + regexp += "It failed after (.+?) at (.+?)\\. Check the Log" else - match = /This pipeline started at (.*). It has been active for(.*)/.match page_text + regexp += "It has been active for \\d" end - assert_not_nil(match, 'Did not find text - This pipeline started at . . . ') + assert_match /#{regexp}/, page.text - start_at = match[1] - assert_not_nil(start_at, 'Did not find start_at time') + return if !run_time - start_time = parse_browser_timestamp start_at - if run_time - finished_at = match[3] - assert_not_nil(finished_at, 'Did not find finished_at time') - finished_time = parse_browser_timestamp finished_at - assert_equal(run_time, finished_time-start_time, - "Time difference did not match for start_at #{start_at}, finished_at #{finished_at}, ran_for #{match[2]}") - else - match = /\d(.*)/.match match[2] - assert_not_nil match, 'Did not find expected match for running component' - end + # match again to capture (.*) + _, started, duration, finished = *(/#{regexp}/.match(page.text)) + assert_equal( + run_time, + parse_browser_timestamp(finished) - parse_browser_timestamp(started), + "expected: #{run_time}, got: started #{started}, finished #{finished}, duration #{duration}") end end