From fff7228b347fd12c15a18d6de47e37c2f72ae795 Mon Sep 17 00:00:00 2001 From: Tim Pierce Date: Mon, 27 Oct 2014 14:06:12 -0400 Subject: [PATCH] 4015: simplify integration tests Responding to code review in #4015-8: We can (and should) test that the collection portable_data_hash is recorded in individual tests without adding explicit new tests or fixtures. Updated test 'Create and run a pipeline' and the helper create_and_run_pipeline_in_aproject to check that the collection portable_data_hash, uuid and name have been recorded correctly in the Advanced tab. --- .../integration/pipeline_instances_test.rb | 73 +++++++------------ services/api/test/fixtures/collections.yml | 10 --- .../api/test/fixtures/pipeline_templates.yml | 20 ----- 3 files changed, 27 insertions(+), 76 deletions(-) diff --git a/apps/workbench/test/integration/pipeline_instances_test.rb b/apps/workbench/test/integration/pipeline_instances_test.rb index d93bba7fc6..ee4a660f55 100644 --- a/apps/workbench/test/integration/pipeline_instances_test.rb +++ b/apps/workbench/test/integration/pipeline_instances_test.rb @@ -70,6 +70,19 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest end wait_for_ajax + # Ensure that the collection's portable_data_hash, uuid and name + # are saved in the desired places. (#4015) + + # foo_collection_in_aproject is the collection tagged with foo_tag. + col = api_fixture('collections', 'foo_collection_in_aproject') + click_link 'Advanced' + 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'], col['portable_data_hash'] + assert_equal input_params['selection_name'], col['name'] + assert_equal input_params['selection_uuid'], col['uuid'] + # "Run" button is now enabled page.assert_no_selector 'a.disabled,button.disabled', text: 'Run' @@ -117,57 +130,12 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest create_and_run_pipeline_in_aproject true end - # Create a pipeline instance from without a project + # Create a pipeline instance from outside of a project test 'Run a pipeline from dashboard' do visit page_with_token('active_trustedclient') create_and_run_pipeline_in_aproject false end - # Test that the portable_data_hash is recorded when choosing an - # input collection for a pipeline - test 'pipeline input collections are recorded with portable_data_hash' do - visit page_with_token('active_trustedclient') - - template = api_fixture('pipeline_templates')['simple_pipeline'] - - visit '/pipeline_templates' - within('tr', text: template['name']) do - find('a,button', text: 'Run').click - end - - # project chooser - project = api_fixture('groups')['aproject'] - within('.modal-dialog') do - find('.selectable', text: project['name']).click - find('button', text: 'Choose').click - end - - # find the collection input field - input = page.all('a', text: 'Choose').select { |a| - a[:href] =~ /Choose.a.dataset.for.simple.pipeline.input/ - } - assert_not_empty input - input.first.click - - # Select a collection - col = api_fixture('collections')['collection_input_for_simple_pipeline'] - within('.modal-dialog') do - find('div.selectable', text: col['name']).click - find('button', text: 'OK').click - end - - # The collection's portable_data_hash, name, and uuid should have - # been recorded, respectively, as the value, selection_name and selection_uuid - # for this component's input script_parameter. - click_link 'Advanced' - click_link 'API response' - api_response = JSON.parse(find('div#advanced_api_response pre').text) - input_params = api_response['components']['foo_component']['script_parameters']['input'] - assert_equal input_params['value'], col['portable_data_hash'] - assert_equal input_params['selection_name'], col['name'] - assert_equal input_params['selection_uuid'], col['uuid'] - end - test 'view pipeline with job and see graph' do visit page_with_token('active_trustedclient') @@ -345,6 +313,19 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest end wait_for_ajax + # Ensure that the collection's portable_data_hash, uuid and name + # are saved in the desired places. (#4015) + + # foo_collection_in_aproject is the collection tagged with foo_tag. + col = api_fixture('collections', 'foo_collection_in_aproject') + click_link 'Advanced' + 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'], col['portable_data_hash'] + assert_equal input_params['selection_name'], col['name'] + assert_equal input_params['selection_uuid'], col['uuid'] + # "Run" button present and enabled page.assert_no_selector 'a.disabled,button.disabled', text: 'Run' first('a,button', text: 'Run').click diff --git a/services/api/test/fixtures/collections.yml b/services/api/test/fixtures/collections.yml index 8e00370d17..045e1c7190 100644 --- a/services/api/test/fixtures/collections.yml +++ b/services/api/test/fixtures/collections.yml @@ -123,16 +123,6 @@ empty: manifest_text: "" name: empty_collection -collection_input_for_simple_pipeline: - uuid: zzzzz-4zz18-c5hn44njgog4hhm - portable_data_hash: 1f4b0bc7583c2a7f9102c395f4ffc5e3+45 - owner_uuid: zzzzz-j7d0g-v955i6s2oi1cbso - created_at: 2014-10-23 17:32:02 -0400 - modified_at: 2014-10-23 17:32:02 -0400 - updated_at: 2014-10-23 17:32:02 -0400 - manifest_text: ". acbd18db4cc2f85cedef654fccc4a4d8+3 0:3:foo\n" - name: collection input for simple pipeline - foo_collection_in_aproject: uuid: zzzzz-4zz18-fy296fx3hot09f7 portable_data_hash: 1f4b0bc7583c2a7f9102c395f4ffc5e3+45 diff --git a/services/api/test/fixtures/pipeline_templates.yml b/services/api/test/fixtures/pipeline_templates.yml index 2f1e43e31c..495c5e35ad 100644 --- a/services/api/test/fixtures/pipeline_templates.yml +++ b/services/api/test/fixtures/pipeline_templates.yml @@ -1,23 +1,3 @@ -simple_pipeline: - uuid: zzzzz-p5p6p-hrfcwbrc62fj0kq - owner_uuid: zzzzz-j7d0g-v955i6s2oi1cbso - created_at: 2014-10-23 16:46:27 -0400 - updated_at: 2014-10-23 16:46:27 -0400 - modified_at: 2014-10-23 16:46:27 -0400 - modified_by_client_uuid: zzzzz-ozdt8-brczlopd8u8d0jr - modified_by_user_uuid: zzzzz-tpzed-xurymjxw79nv3jz - name: Pipeline Template With Collection Input - components: - foo_component: - script: foo - script_version: master - script_parameters: - input: - required: true - dataclass: Collection - title: "simple pipeline input" - description: "Collection input for simple pipeline" - two_part: uuid: zzzzz-p5p6p-aox0k0ofxrystgw owner_uuid: zzzzz-j7d0g-v955i6s2oi1cbso -- 2.30.2