74 lines
1.6 KiB
Ruby
74 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Ci::JobArtifact do
|
|
set(:artifact) { create(:ci_job_artifact, :archive) }
|
|
|
|
describe "Associations" do
|
|
it { is_expected.to belong_to(:project) }
|
|
it { is_expected.to belong_to(:job) }
|
|
end
|
|
|
|
it { is_expected.to respond_to(:file) }
|
|
it { is_expected.to respond_to(:created_at) }
|
|
it { is_expected.to respond_to(:updated_at) }
|
|
|
|
describe '#set_size' do
|
|
it 'sets the size' do
|
|
expect(artifact.size).to eq(106365)
|
|
end
|
|
end
|
|
|
|
describe '#file' do
|
|
subject { artifact.file }
|
|
|
|
context 'the uploader api' do
|
|
it { is_expected.to respond_to(:store_dir) }
|
|
it { is_expected.to respond_to(:cache_dir) }
|
|
it { is_expected.to respond_to(:work_dir) }
|
|
end
|
|
end
|
|
|
|
describe '#expire_in' do
|
|
subject { artifact.expire_in }
|
|
|
|
it { is_expected.to be_nil }
|
|
|
|
context 'when expire_at is specified' do
|
|
let(:expire_at) { Time.now + 7.days }
|
|
|
|
before do
|
|
artifact.expire_at = expire_at
|
|
end
|
|
|
|
it { is_expected.to be_within(5).of(expire_at - Time.now) }
|
|
end
|
|
end
|
|
|
|
describe '#expire_in=' do
|
|
subject { artifact.expire_in }
|
|
|
|
it 'when assigning valid duration' do
|
|
artifact.expire_in = '7 days'
|
|
|
|
is_expected.to be_within(10).of(7.days.to_i)
|
|
end
|
|
|
|
it 'when assigning invalid duration' do
|
|
expect { artifact.expire_in = '7 elephants' }.to raise_error(ChronicDuration::DurationParseError)
|
|
|
|
is_expected.to be_nil
|
|
end
|
|
|
|
it 'when resetting value' do
|
|
artifact.expire_in = nil
|
|
|
|
is_expected.to be_nil
|
|
end
|
|
|
|
it 'when setting to 0' do
|
|
artifact.expire_in = '0'
|
|
|
|
is_expected.to be_nil
|
|
end
|
|
end
|
|
end
|