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'
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
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']
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
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