diff options
Diffstat (limited to 'spec/lib/gitlab/ci/build/releaser_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/build/releaser_spec.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/spec/lib/gitlab/ci/build/releaser_spec.rb b/spec/lib/gitlab/ci/build/releaser_spec.rb new file mode 100644 index 00000000000..2f7bca777dd --- /dev/null +++ b/spec/lib/gitlab/ci/build/releaser_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Ci::Build::Releaser do + subject { described_class.new(config: config[:release]).script } + + describe '#script' do + context 'all nodes' do + let(:config) do + { + release: { + name: 'Release $CI_COMMIT_SHA', + description: 'Created using the release-cli $EXTRA_DESCRIPTION', + tag_name: 'release-$CI_COMMIT_SHA', + ref: '$CI_COMMIT_SHA' + } + } + end + + it 'generates the script' do + expect(subject).to eq('release-cli create --name "Release $CI_COMMIT_SHA" --description "Created using the release-cli $EXTRA_DESCRIPTION" --tag-name "release-$CI_COMMIT_SHA" --ref "$CI_COMMIT_SHA"') + end + end + + context 'individual nodes' do + using RSpec::Parameterized::TableSyntax + + where(:node_name, :node_value, :result) do + 'name' | 'Release $CI_COMMIT_SHA' | 'release-cli create --name "Release $CI_COMMIT_SHA"' + 'description' | 'Release-cli $EXTRA_DESCRIPTION' | 'release-cli create --description "Release-cli $EXTRA_DESCRIPTION"' + 'tag_name' | 'release-$CI_COMMIT_SHA' | 'release-cli create --tag-name "release-$CI_COMMIT_SHA"' + 'ref' | '$CI_COMMIT_SHA' | 'release-cli create --ref "$CI_COMMIT_SHA"' + end + + with_them do + let(:config) do + { + release: { + node_name => node_value + } + } + end + + it 'generates the script' do + expect(subject).to eq(result) + end + end + end + end +end |