spec/lib/release_tools/component_versions_spec.rb (65 lines of code) (raw):
# frozen_string_literal: true
require 'spec_helper'
describe ReleaseTools::ComponentVersions do
let(:fake_client) { spy }
let(:target_branch) { '12-9-auto-deploy-20200218' }
before do
stub_const('ReleaseTools::GitlabClient', fake_client)
end
describe '.for_omnibus' do
it 'returns a Hash of component versions' do
commit_id = 'abcdefg'
file = described_class::FILES.sample
expect(fake_client).to receive(:file_contents)
.with(described_class::SOURCE_PROJECT.auto_deploy_path, file, commit_id)
.and_return("1.2.3\n")
expect(described_class.for_omnibus(commit_id)).to match(
a_hash_including(
'VERSION' => commit_id,
file => '1.2.3'
)
)
end
end
describe '.for_cng' do
let(:gemfile_fixture) do
File.read(File.join(VersionFixture.new.fixture_path, 'Gemfile.lock'))
end
it 'returns a Hash of component versions' do
commit_id = 'abcdefg'
file = described_class::FILES.sample
expect(fake_client).to receive(:file_contents)
.with(described_class::SOURCE_PROJECT.auto_deploy_path, file, commit_id)
.and_return("1.2.3\n")
expect(fake_client).to receive(:file_contents)
.with(described_class::SOURCE_PROJECT.auto_deploy_path, 'Gemfile.lock', commit_id)
.and_return(gemfile_fixture)
versions = described_class.for_cng(commit_id)
expect(versions).to match(
a_hash_including(
'GITLAB_VERSION' => commit_id,
file => 'v1.2.3',
'MAILROOM_VERSION' => '0.9.1'
)
)
end
end
describe '.normalize_cng_versions' do
it 'returns a Hash of component versions' do
commit_id = 'abcdefg'
versions = {
'VERSION' => commit_id,
'GITALY_SERVER_VERSION' => '1.2.3',
'SOME_RC_COMPONENT' => '12.9.0-rc5'
}
described_class.normalize_cng_versions(versions)
expect(versions).to match(
a_hash_including(
'GITLAB_VERSION' => commit_id,
'GITLAB_ASSETS_TAG' => commit_id,
'GITALY_SERVER_VERSION' => 'v1.2.3',
'SOME_RC_COMPONENT' => 'v12.9.0-rc5'
)
)
end
end
end