about summary refs log tree commit diff
path: root/spec/services/resolve_url_service_spec.rb
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-04-28 23:41:53 +0200
committerClaire <claire.github-309c@sitedethib.com>2022-04-28 23:41:53 +0200
commit01266e4d7f15e63c008b503401ce3d815ca36193 (patch)
tree55df38a983cbd858b2b8c30947b8b00916ee4698 /spec/services/resolve_url_service_spec.rb
parent78f7f23ad21359893cb022b7c2f7644d5c22cb43 (diff)
parent66a63d79ea11641c3e15cf65785be464cf3695bc (diff)
Merge branch 'main' into glitch-soc/merge-upstream
Diffstat (limited to 'spec/services/resolve_url_service_spec.rb')
-rw-r--r--spec/services/resolve_url_service_spec.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/spec/services/resolve_url_service_spec.rb b/spec/services/resolve_url_service_spec.rb
index a38b23590..1b639dea9 100644
--- a/spec/services/resolve_url_service_spec.rb
+++ b/spec/services/resolve_url_service_spec.rb
@@ -7,15 +7,29 @@ describe ResolveURLService, type: :service do
 
   describe '#call' do
     it 'returns nil when there is no resource url' do
-      url     = 'http://example.com/missing-resource'
+      url           = 'http://example.com/missing-resource'
+      known_account = Fabricate(:account, uri: url)
       service = double
 
       allow(FetchResourceService).to receive(:new).and_return service
+      allow(service).to receive(:response_code).and_return(404)
       allow(service).to receive(:call).with(url).and_return(nil)
 
       expect(subject.call(url)).to be_nil
     end
 
+    it 'returns known account on temporary error' do
+      url           = 'http://example.com/missing-resource'
+      known_account = Fabricate(:account, uri: url)
+      service = double
+
+      allow(FetchResourceService).to receive(:new).and_return service
+      allow(service).to receive(:response_code).and_return(500)
+      allow(service).to receive(:call).with(url).and_return(nil)
+
+      expect(subject.call(url)).to eq known_account
+    end
+
     context 'searching for a remote private status' do
       let(:account)  { Fabricate(:account) }
       let(:poster)   { Fabricate(:account, domain: 'example.com') }