summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb')
-rw-r--r--spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb48
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb b/spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb
index 7e7460cd602..cd4432af4ed 100644
--- a/spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb
+++ b/spec/support/shared_examples/bulk_imports/common/pipelines/wiki_pipeline_examples.rb
@@ -57,5 +57,53 @@ RSpec.shared_examples 'wiki pipeline imports a wiki for an entity' do
expect(tracker.entity.failures.first.exception_message).to eq('Only allowed schemes are http, https')
end
end
+
+ context 'when wiki is disabled' do
+ before do
+ allow_next_instance_of(BulkImports::Clients::HTTP) do |client|
+ allow(client)
+ .to receive(:get)
+ .and_raise(
+ BulkImports::NetworkError.new(
+ 'Unsuccessful response 403 from ...',
+ response: response_double
+ )
+ )
+ end
+ end
+
+ describe 'unsuccessful response' do
+ shared_examples 'does not raise an error' do
+ it 'does not raise an error' do
+ expect(parent.wiki).not_to receive(:ensure_repository)
+ expect(parent.wiki.repository).not_to receive(:ensure_repository)
+
+ expect { subject.run }.not_to raise_error
+ end
+ end
+
+ context 'when response is forbidden' do
+ let(:response_double) { instance_double(HTTParty::Response, forbidden?: true, code: 403) }
+
+ include_examples 'does not raise an error'
+ end
+
+ context 'when response is not found' do
+ let(:response_double) { instance_double(HTTParty::Response, forbidden?: false, not_found?: true) }
+
+ include_examples 'does not raise an error'
+ end
+
+ context 'when response is not 403' do
+ let(:response_double) { instance_double(HTTParty::Response, forbidden?: false, not_found?: false, code: 301) }
+
+ it 'marks tracker as failed' do
+ subject.run
+
+ expect(tracker.failed?).to eq(true)
+ end
+ end
+ end
+ end
end
end