about summary refs log tree commit diff
path: root/spec/controllers/well_known
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/well_known')
-rw-r--r--spec/controllers/well_known/webfinger_controller_spec.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb
index 6e493b037..4d588bf4e 100644
--- a/spec/controllers/well_known/webfinger_controller_spec.rb
+++ b/spec/controllers/well_known/webfinger_controller_spec.rb
@@ -6,6 +6,12 @@ describe WellKnown::WebfingerController, type: :controller do
   describe 'GET #show' do
     let(:alice) { Fabricate(:account, username: 'alice') }
 
+    around(:each) do |example|
+      before = Rails.configuration.x.alternate_domains
+      example.run
+      Rails.configuration.x.alternate_domains = before
+    end
+
     it 'returns http success when account can be found' do
       get :show, params: { resource: alice.to_webfinger_s }, format: :json
 
@@ -17,5 +23,23 @@ describe WellKnown::WebfingerController, type: :controller do
 
       expect(response).to have_http_status(:not_found)
     end
+
+    it 'returns http success when account can be found with alternate domains' do
+      Rails.configuration.x.alternate_domains = ["foo.org"]
+      username, domain = alice.to_webfinger_s.split("@")
+
+      get :show, params: { resource: "#{username}@foo.org" }, format: :json
+
+      expect(response).to have_http_status(:success)
+    end
+
+    it 'returns http not found when account can not be found with alternate domains' do
+      Rails.configuration.x.alternate_domains = ["foo.org"]
+      username, domain = alice.to_webfinger_s.split("@")
+
+      get :show, params: { resource: "#{username}@bar.org" }, format: :json
+
+      expect(response).to have_http_status(:not_found)
+    end
   end
 end