# Pipeline can be re-run now. Access it as the specified user, and re-run
if user == 'project_viewer'
- visit page_with_token(user)
- visit instance_path
+ visit page_with_token(user, instance_path)
assert page.has_text? 'A Project'
page.assert_no_selector 'a.disabled,button.disabled', text: 'Resume'
page.assert_selector 'a,button', text: 'Re-run with latest'
assert_not page.has_text? 'Graph'
end
+ [
+ [0, 0], # run time 0 minutes
+ [9, 17*60*60 + 51*60], # run time 17 hours and 51 minutes
+ ].each do |index, run_time|
+ test "pipeline start and finish time display #{index}" do
+ visit page_with_token("user1_with_load", "/pipeline_instances/zzzzz-d1hrv-10pipelines0#{index.to_s.rjust(3, '0')}")
+
+ assert page.has_text? 'This pipeline started at'
+ page_text = page.text
+ match = /This pipeline started at (.*)\. It failed after (.*) seconds at (.*)\. Check the Log/.match page_text
+
+ start_at = match[1]
+ finished_at = match[3]
+
+ # start and finished time display is of the format '2:20 PM 10/20/2014'
+ start_time = DateTime.strptime(start_at, '%I:%M %p %m/%d/%Y').to_time
+ finished_time = DateTime.strptime(finished_at, '%I:%M %p %m/%d/%Y').to_time
+
+ 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]}")
+ end
+ end
end