2019-02-15 15:39:39 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe Releases::Source do
|
2020-03-09 13:42:32 +05:30
|
|
|
let_it_be(:project) { create(:project, :repository, name: 'finance-cal') }
|
2019-02-15 15:39:39 +05:30
|
|
|
let(:tag_name) { 'v1.0' }
|
|
|
|
|
|
|
|
describe '.all' do
|
|
|
|
subject { described_class.all(project, tag_name) }
|
|
|
|
|
|
|
|
it 'returns all formats of sources' do
|
|
|
|
expect(subject.map(&:format))
|
2019-12-26 22:10:19 +05:30
|
|
|
.to match_array(Gitlab::Workhorse::ARCHIVE_FORMATS)
|
2019-02-15 15:39:39 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe '#url' do
|
|
|
|
subject { source.url }
|
|
|
|
|
|
|
|
let(:source) do
|
|
|
|
described_class.new(project: project, tag_name: tag_name, format: format)
|
|
|
|
end
|
|
|
|
|
|
|
|
let(:format) { 'zip' }
|
|
|
|
|
|
|
|
it 'returns zip archived source url' do
|
|
|
|
is_expected
|
|
|
|
.to eq("#{project.web_url}/-/archive/v1.0/finance-cal-v1.0.zip")
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when ref is directory structure' do
|
|
|
|
let(:tag_name) { 'beta/v1.0' }
|
|
|
|
|
|
|
|
it 'converts slash to dash' do
|
|
|
|
is_expected
|
|
|
|
.to eq("#{project.web_url}/-/archive/beta/v1.0/finance-cal-beta-v1.0.zip")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|