Use update_column than write_attribute and save
This commit is contained in:
parent
6cfea81e6d
commit
301c4ef950
2 changed files with 23 additions and 2 deletions
|
@ -328,8 +328,7 @@ module Ci
|
|||
end
|
||||
|
||||
def erase_old_trace!
|
||||
write_attribute(:trace, nil)
|
||||
save
|
||||
update_column(:trace, nil)
|
||||
end
|
||||
|
||||
def needs_touch?
|
||||
|
|
|
@ -510,6 +510,28 @@ describe Gitlab::Ci::Trace do
|
|||
|
||||
it_behaves_like 'source trace in database stays intact', error: ActiveRecord::RecordInvalid
|
||||
end
|
||||
|
||||
context 'when there is a validation error on Ci::Build' do
|
||||
before do
|
||||
allow_any_instance_of(Ci::Build).to receive(:save).and_return(false)
|
||||
allow_any_instance_of(Ci::Build).to receive_message_chain(:errors, :full_messages)
|
||||
.and_return(%w[Error Error])
|
||||
end
|
||||
|
||||
context "when erase old trace with 'save'" do
|
||||
before do
|
||||
build.send(:write_attribute, :trace, nil)
|
||||
build.save
|
||||
end
|
||||
|
||||
it 'old trace is not deleted' do
|
||||
build.reload
|
||||
expect(build.trace.raw).to eq(trace_content)
|
||||
end
|
||||
end
|
||||
|
||||
it_behaves_like 'archive trace in database'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue