diff options
Diffstat (limited to 'features')
-rw-r--r-- | features/project/builds.feature | 8 | ||||
-rw-r--r-- | features/steps/project/builds.rb | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/features/project/builds.feature b/features/project/builds.feature index e7626222f7f..c00b0a7ae07 100644 --- a/features/project/builds.feature +++ b/features/project/builds.feature @@ -48,3 +48,11 @@ Feature: Project Builds And I click artifacts browse button And I navigate to parent directory of directory with invalid name Then I should not see directory with invalid name on the list + + Scenario: I download a single file from build artifacts + Given recent build has artifacts available + And recent build has artifacts metadata available + When I visit recent build summary page + And I click artifacts browse button + And I click download button for a file within build artifacts + Then download of a file extracted from build artifacts should start diff --git a/features/steps/project/builds.rb b/features/steps/project/builds.rb index 12d0dd24427..5702496ac84 100644 --- a/features/steps/project/builds.rb +++ b/features/steps/project/builds.rb @@ -75,4 +75,15 @@ class Spinach::Features::ProjectBuilds < Spinach::FeatureSteps expect(page).to have_no_content('non-utf8-dir') end end + + step 'I click download button for a file within build artifacts' do + page.within('.tree-table') { first('.artifact-download').click } + end + + step 'download of a file extracted from build artifacts should start' do + # this will be accelerated by Workhorse + response_json = JSON.parse(page.body, symbolize_names: true) + expect(response_json[:archive]).to end_with('build_artifacts.zip') + expect(response_json[:path]).to eq Base64.encode64('ci_artifacts.txt') + end end |