X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0bd1c28bed9a0756c61037947d5a9dccd5066f00..b522f728ae1674c9b9bcee189885d919e91acccf:/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 6385393b24..0be483a29b 100644 --- a/apps/workbench/test/integration/pipeline_instances_test.rb +++ b/apps/workbench/test/integration/pipeline_instances_test.rb @@ -40,8 +40,9 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest visit '/projects' find('.arv-project-list a,button', text: 'A Project').click find('.btn', text: 'Add data').click - find('span', text: 'foo_tag').click within('.modal-dialog') do + wait_for_ajax + first('span', text: 'foo_tag').click find('.btn', text: 'Add').click end using_wait_time(Capybara.default_wait_time * 3) do @@ -49,7 +50,7 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest end click_link 'Jobs and pipelines' - find('tr[data-kind="arvados#pipelineInstance"]', text: 'New pipeline instance'). + find('tr[data-kind="arvados#pipelineInstance"]', text: '(none)'). find('a', text: 'Show'). click @@ -62,10 +63,10 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest within('.modal-dialog') do assert(has_text?("Foo/bar pair"), "pipeline input picker missing name of input") + wait_for_ajax first('span', text: 'foo_tag').click find('button', text: 'OK').click end - wait_for_ajax # "Run" button is now enabled @@ -73,14 +74,14 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest first('a,button', text: 'Run').click - # Pipeline is running. We have a "Stop" button instead now. - page.assert_selector 'a,button', text: 'Stop' - find('a,button', text: 'Stop').click + # Pipeline is running. We have a "Pause" button instead now. + page.assert_selector 'a,button', text: 'Pause' + find('a,button', text: 'Pause').click # Pipeline is stopped. It should now be in paused state and Runnable again. assert page.has_text? 'Paused' page.assert_no_selector 'a.disabled,button.disabled', text: 'Resume' - page.assert_selector 'a,button', text: 'Clone and edit' + page.assert_selector 'a,button', text: 'Re-run with latest' # Since it is test env, no jobs are created to run. So, graph not visible assert_not page.has_text? 'Graph' @@ -100,14 +101,19 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest # Add this collection to the project using collections menu from top nav visit '/projects' find('.arv-project-list a,button', text: 'A Project').click - - find('li.selection-menu > a').click - click_button 'Copy selections into this project' + find('.btn', text: 'Add data').click + within('.modal-dialog') do + wait_for_ajax + first('span', text: 'foo_tag').click + find('.btn', text: 'Add').click + end + using_wait_time(Capybara.default_wait_time * 3) do + wait_for_ajax + end # create a pipeline instance find('.btn', text: 'Run a pipeline').click within('.modal-dialog') do - assert page.has_text? 'Two Part Pipeline Template' find('.selectable', text: 'Two Part Pipeline Template').click find('.btn', text: 'Next: choose inputs').click end @@ -120,19 +126,19 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest within('.modal-dialog') do assert_selector 'button.dropdown-toggle', text: 'A Project' + wait_for_ajax first('span', text: 'foo_tag').click find('button', text: 'OK').click end - wait_for_ajax # "Run" button present and enabled page.assert_no_selector 'a.disabled,button.disabled', text: 'Run' first('a,button', text: 'Run').click - # Pipeline is running. We have a "Stop" button instead now. + # Pipeline is running. We have a "Pause" button instead now. page.assert_no_selector 'a,button', text: 'Run' - page.assert_selector 'a,button', text: 'Stop' + page.assert_selector 'a,button', text: 'Pause' # Since it is test env, no jobs are created to run. So, graph not visible assert_not page.has_text? 'Graph' @@ -152,6 +158,26 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest assert page.has_text? 'script_version' end + test 'pipeline description' do + visit page_with_token('active_trustedclient') + + visit '/pipeline_instances' + assert page.has_text? 'pipeline_with_job' + + find('a', text: 'pipeline_with_job').click + + within('.arv-description-as-subtitle') do + find('.fa-pencil').click + find('.editable-input textarea').set('*Textile description for pipeline instance*') + find('.editable-submit').click + end + wait_for_ajax + + # verify description + assert page.has_no_text? '*Textile description for pipeline instance*' + assert page.has_text? 'Textile description for pipeline instance' + end + test "JSON popup available for strange components" do uuid = api_fixture("pipeline_instances")["components_is_jobspec"]["uuid"] visit page_with_token("active", "/pipeline_instances/#{uuid}") @@ -162,4 +188,37 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest assert(page.has_text?("script_parameters"), "components JSON not found") end + + PROJECT_WITH_SEARCH_COLLECTION = "A Subproject" + def check_parameter_search(proj_name) + template = api_fixture("pipeline_templates")["parameter_with_search"] + search_text = template["components"]["with-search"]["script_parameters"]["input"]["search_for"] + visit page_with_token("active", "/pipeline_templates/#{template['uuid']}") + click_on "Run this pipeline" + within(".modal-dialog") do # Set project for the new pipeline instance + find(".selectable", text: proj_name).click + click_on "Choose" + end + assert(has_text?("This pipeline was created from the template"), "did not land on pipeline instance page") + first("a.btn,button", text: "Choose").click + within(".modal-body") do + if (proj_name != PROJECT_WITH_SEARCH_COLLECTION) + # Switch finder modal to Subproject to find the Collection. + click_on proj_name + click_on PROJECT_WITH_SEARCH_COLLECTION + end + assert_equal(search_text, first("input").value, + "parameter search not preseeded") + assert(has_text?(api_fixture("collections")["baz_collection_name_in_asubproject"]["name"]), + "baz Collection not in preseeded search results") + end + end + + test "Workbench respects search_for parameter in templates" do + check_parameter_search(PROJECT_WITH_SEARCH_COLLECTION) + end + + test "Workbench preserves search_for parameter after project switch" do + check_parameter_search("A Project") + end end