spec/lib/release_tools/helm/gitlab_version_finder_spec.rb (44 lines of code) (raw):

# frozen_string_literal: true require 'spec_helper' describe ReleaseTools::Helm::GitlabVersionFinder do let(:client) { class_spy(ReleaseTools::GitlabClient) } let(:finder) { described_class.new(client) } describe '#execute' do context 'when the GitLab version is a branch name' do it 'raises StandardError' do allow(client) .to receive(:file_contents) .with( ReleaseTools::Project::HelmGitlab.canonical_or_security_path, 'Chart.yaml', '4-2-stable' ) .and_raise(gitlab_error(:NotFound)) allow(client) .to receive(:file_contents) .with( ReleaseTools::Project::HelmGitlab.canonical_or_security_path, 'Chart.yaml', 'master' ) .and_return(YAML.dump('appVersion' => 'master')) version = ReleaseTools::Version.new('4.2.0') expect { finder.execute(version) }.to raise_error(StandardError) end end context 'when the GitLab version is a valid version' do it 'returns the GitLab version' do allow(client) .to receive(:file_contents) .with( ReleaseTools::Project::HelmGitlab.canonical_or_security_path, 'Chart.yaml', '4-2-stable' ) .and_return(YAML.dump('appVersion' => '1.2.3')) version = ReleaseTools::Version.new('4.2.0') expect(finder.execute(version)) .to eq(ReleaseTools::Version.new('1.2.3')) end end end end