diff options
Diffstat (limited to 'spec/lib/gitlab/git/remote_mirror_spec.rb')
-rw-r--r-- | spec/lib/gitlab/git/remote_mirror_spec.rb | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/spec/lib/gitlab/git/remote_mirror_spec.rb b/spec/lib/gitlab/git/remote_mirror_spec.rb index 92504b7aafe..0954879f6bd 100644 --- a/spec/lib/gitlab/git/remote_mirror_spec.rb +++ b/spec/lib/gitlab/git/remote_mirror_spec.rb @@ -7,16 +7,29 @@ RSpec.describe Gitlab::Git::RemoteMirror do let(:project) { create(:project, :repository) } let(:repository) { project.repository } let(:ref_name) { 'foo' } + let(:url) { 'https://example.com' } let(:options) { { only_branches_matching: ['master'], ssh_key: 'KEY', known_hosts: 'KNOWN HOSTS', keep_divergent_refs: true } } - subject(:remote_mirror) { described_class.new(repository, ref_name, **options) } + subject(:remote_mirror) { described_class.new(repository, ref_name, url, **options) } - it 'delegates to the Gitaly client' do - expect(repository.gitaly_remote_client) - .to receive(:update_remote_mirror) - .with(ref_name, ['master'], ssh_key: 'KEY', known_hosts: 'KNOWN HOSTS', keep_divergent_refs: true) + shared_examples 'an update' do + it 'delegates to the Gitaly client' do + expect(repository.gitaly_remote_client) + .to receive(:update_remote_mirror) + .with(ref_name, url, ['master'], ssh_key: 'KEY', known_hosts: 'KNOWN HOSTS', keep_divergent_refs: true) + + remote_mirror.update # rubocop:disable Rails/SaveBang + end + end + + context 'with url' do + it_behaves_like 'an update' + end + + context 'without url' do + let(:url) { nil } - remote_mirror.update # rubocop:disable Rails/SaveBang + it_behaves_like 'an update' end it 'wraps gitaly errors' do |