Fix typo in spec. Add a test for the case of when trace is stored in database
This commit is contained in:
parent
2184c753fd
commit
8f1f73d4e3
2 changed files with 26 additions and 4 deletions
|
@ -16,7 +16,7 @@ describe Gitlab::BackgroundMigration::ArchiveLegacyTraces, :migration, schema: 2
|
|||
|
||||
context 'when trace file exsits at the right place' do
|
||||
before do
|
||||
create_legacy_trace(@build, 'aiueo')
|
||||
create_legacy_trace(@build, 'trace in file')
|
||||
end
|
||||
|
||||
it 'correctly archive legacy traces' do
|
||||
|
@ -27,15 +27,33 @@ describe Gitlab::BackgroundMigration::ArchiveLegacyTraces, :migration, schema: 2
|
|||
|
||||
expect(job_artifacts.count).to eq(1)
|
||||
expect(File.exist?(legacy_trace_path(@build))).to be_falsy
|
||||
expect(File.read(archived_trace_path(job_artifacts.first))).to eq('aiueo')
|
||||
expect(File.read(archived_trace_path(job_artifacts.first))).to eq('trace in file')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when trace file does not exsits at the right place' do
|
||||
it 'does not raise errors and create job artifact row' do
|
||||
described_class.new.perform(1, 1)
|
||||
it 'does not raise errors nor create job artifact' do
|
||||
expect { described_class.new.perform(1, 1) }.not_to raise_error
|
||||
|
||||
expect(job_artifacts.count).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when trace data exsits in database' do
|
||||
before do
|
||||
create_legacy_trace_in_db(@build, 'trace in db')
|
||||
end
|
||||
|
||||
it 'correctly archive legacy traces' do
|
||||
expect(job_artifacts.count).to eq(0)
|
||||
expect(@build.read_attribute(:trace)).not_to be_empty
|
||||
|
||||
described_class.new.perform(1, 1)
|
||||
|
||||
@build.reload
|
||||
expect(job_artifacts.count).to eq(1)
|
||||
expect(@build.read_attribute(:trace)).to be_nil
|
||||
expect(File.read(archived_trace_path(job_artifacts.first))).to eq('trace in db')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,6 +3,10 @@ module TraceHelpers
|
|||
File.open(legacy_trace_path(build), 'wb') { |stream| stream.write(content) }
|
||||
end
|
||||
|
||||
def create_legacy_trace_in_db(build, content)
|
||||
build.update_column(:trace, content)
|
||||
end
|
||||
|
||||
def legacy_trace_path(build)
|
||||
legacy_trace_dir = File.join(Settings.gitlab_ci.builds_path,
|
||||
build.created_at.utc.strftime("%Y_%m"),
|
||||
|
|
Loading…
Reference in a new issue