diff options
Diffstat (limited to 'spec/models/merge_request_spec.rb')
-rw-r--r-- | spec/models/merge_request_spec.rb | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 5baa7c81ecc..0028b60749b 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -1660,12 +1660,40 @@ describe MergeRequest do end describe '#fetch_ref' do - it 'sets "ref_fetched" flag to true' do + before do subject.update!(ref_fetched: nil) + end - subject.fetch_ref + context 'when the branch exists' do + it 'writes the ref' do + expect(subject.target_project.repository).to receive(:write_ref).with(subject.ref_path, /\h{40}/) - expect(subject.reload.ref_fetched).to be_truthy + subject.fetch_ref + end + + it 'sets "ref_fetched" flag to true' do + subject.fetch_ref + + expect(subject.reload.ref_fetched).to be_truthy + end + end + + context 'when the branch does not exist' do + before do + subject.source_branch = 'definitely-not-master' + end + + it 'does not write the ref' do + expect(subject.target_project.repository).not_to receive(:write_ref) + + subject.fetch_ref + end + + it 'sets "ref_fetched" flag to true' do + subject.fetch_ref + + expect(subject.reload.ref_fetched).to be_truthy + end end end |