about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/admin/silences_controller_spec.rb24
-rw-r--r--spec/controllers/admin/suspensions_controller_spec.rb24
-rw-r--r--spec/controllers/settings/exports_controller_spec.rb3
-rw-r--r--spec/controllers/well_known/host_meta_controller_spec.rb13
-rw-r--r--spec/controllers/well_known/webfinger_controller_spec.rb21
-rw-r--r--spec/controllers/xrd_controller_spec.rb26
-rw-r--r--spec/models/account_filter_spec.rb31
-rw-r--r--spec/requests/host_meta_request_spec.rb12
-rw-r--r--spec/routing/well_known_routes_spec.rb15
9 files changed, 143 insertions, 26 deletions
diff --git a/spec/controllers/admin/silences_controller_spec.rb b/spec/controllers/admin/silences_controller_spec.rb
new file mode 100644
index 000000000..7c541d797
--- /dev/null
+++ b/spec/controllers/admin/silences_controller_spec.rb
@@ -0,0 +1,24 @@
+require 'rails_helper'
+
+describe Admin::SilencesController do
+  let(:account) { Fabricate(:account) }
+  before do
+    sign_in Fabricate(:user, admin: true), scope: :user
+  end
+
+  describe 'POST #create' do
+    it 'redirects to admin accounts page' do
+      post :create, params: { account_id: account.id }
+
+      expect(response).to redirect_to(admin_accounts_path)
+    end
+  end
+
+  describe 'DELETE #destroy' do
+    it 'redirects to admin accounts page' do
+      delete :destroy, params: { account_id: account.id }
+
+      expect(response).to redirect_to(admin_accounts_path)
+    end
+  end
+end
diff --git a/spec/controllers/admin/suspensions_controller_spec.rb b/spec/controllers/admin/suspensions_controller_spec.rb
new file mode 100644
index 000000000..9096f067e
--- /dev/null
+++ b/spec/controllers/admin/suspensions_controller_spec.rb
@@ -0,0 +1,24 @@
+require 'rails_helper'
+
+describe Admin::SuspensionsController do
+  let(:account) { Fabricate(:account) }
+  before do
+    sign_in Fabricate(:user, admin: true), scope: :user
+  end
+
+  describe 'POST #create' do
+    it 'redirects to admin accounts page' do
+      post :create, params: { account_id: account.id }
+
+      expect(response).to redirect_to(admin_accounts_path)
+    end
+  end
+
+  describe 'DELETE #destroy' do
+    it 'redirects to admin accounts page' do
+      delete :destroy, params: { account_id: account.id }
+
+      expect(response).to redirect_to(admin_accounts_path)
+    end
+  end
+end
diff --git a/spec/controllers/settings/exports_controller_spec.rb b/spec/controllers/settings/exports_controller_spec.rb
index ff98f3ad9..2be6e4744 100644
--- a/spec/controllers/settings/exports_controller_spec.rb
+++ b/spec/controllers/settings/exports_controller_spec.rb
@@ -1,6 +1,8 @@
 require 'rails_helper'
 
 describe Settings::ExportsController do
+  render_views
+
   before do
     sign_in Fabricate(:user), scope: :user
   end
@@ -8,6 +10,7 @@ describe Settings::ExportsController do
   describe 'GET #show' do
     it 'returns http success' do
       get :show
+
       expect(response).to have_http_status(:success)
     end
   end
diff --git a/spec/controllers/well_known/host_meta_controller_spec.rb b/spec/controllers/well_known/host_meta_controller_spec.rb
new file mode 100644
index 000000000..8a040021a
--- /dev/null
+++ b/spec/controllers/well_known/host_meta_controller_spec.rb
@@ -0,0 +1,13 @@
+require 'rails_helper'
+
+describe WellKnown::HostMetaController, type: :controller do
+  render_views
+
+  describe 'GET #show' do
+    it 'returns http success' do
+      get :show, format: :xml
+
+      expect(response).to have_http_status(:success)
+    end
+  end
+end
diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb
new file mode 100644
index 000000000..6e493b037
--- /dev/null
+++ b/spec/controllers/well_known/webfinger_controller_spec.rb
@@ -0,0 +1,21 @@
+require 'rails_helper'
+
+describe WellKnown::WebfingerController, type: :controller do
+  render_views
+
+  describe 'GET #show' do
+    let(:alice) { Fabricate(:account, username: 'alice') }
+
+    it 'returns http success when account can be found' do
+      get :show, params: { resource: alice.to_webfinger_s }, format: :json
+
+      expect(response).to have_http_status(:success)
+    end
+
+    it 'returns http not found when account cannot be found' do
+      get :show, params: { resource: 'acct:not@existing.com' }, format: :json
+
+      expect(response).to have_http_status(:not_found)
+    end
+  end
+end
diff --git a/spec/controllers/xrd_controller_spec.rb b/spec/controllers/xrd_controller_spec.rb
deleted file mode 100644
index 33b17f152..000000000
--- a/spec/controllers/xrd_controller_spec.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe XrdController, type: :controller do
-  render_views
-
-  describe 'GET #host_meta' do
-    it 'returns http success' do
-      get :host_meta
-      expect(response).to have_http_status(:success)
-    end
-  end
-
-  describe 'GET #webfinger' do
-    let(:alice) { Fabricate(:account, username: 'alice') }
-
-    it 'returns http success when account can be found' do
-      get :webfinger, params: { resource: alice.to_webfinger_s }, format: :json
-      expect(response).to have_http_status(:success)
-    end
-
-    it 'returns http not found when account cannot be found' do
-      get :webfinger, params: { resource: 'acct:not@existing.com' }, format: :json
-      expect(response).to have_http_status(:not_found)
-    end
-  end
-end
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
new file mode 100644
index 000000000..1599c5ae8
--- /dev/null
+++ b/spec/models/account_filter_spec.rb
@@ -0,0 +1,31 @@
+require 'rails_helper'
+
+describe AccountFilter do
+  describe 'with empty params' do
+    it 'defaults to alphabetic account list' do
+      filter = AccountFilter.new({})
+
+      expect(filter.results).to eq Account.alphabetic
+    end
+  end
+
+  describe 'with invalid params' do
+    it 'raises with key error' do
+      filter = AccountFilter.new(wrong: true)
+
+      expect { filter.results }.to raise_error(/wrong/)
+    end
+  end
+
+  describe 'with valid params' do
+    it 'combines filters on Account' do
+      filter = AccountFilter.new(by_domain: 'test.com', silenced: true)
+
+      allow(Account).to receive(:where).and_return(Account.none)
+      allow(Account).to receive(:silenced).and_return(Account.none)
+      filter.results
+      expect(Account).to have_received(:where).with(domain: 'test.com')
+      expect(Account).to have_received(:silenced)
+    end
+  end
+end
diff --git a/spec/requests/host_meta_request_spec.rb b/spec/requests/host_meta_request_spec.rb
new file mode 100644
index 000000000..0c51b5f48
--- /dev/null
+++ b/spec/requests/host_meta_request_spec.rb
@@ -0,0 +1,12 @@
+require "rails_helper"
+
+describe "The host_meta route" do
+  describe "requested without accepts headers" do
+    it "returns an xml response" do
+      get host_meta_url
+
+      expect(response).to have_http_status(:success)
+      expect(response.content_type).to eq "application/xrd+xml"
+    end
+  end
+end
diff --git a/spec/routing/well_known_routes_spec.rb b/spec/routing/well_known_routes_spec.rb
new file mode 100644
index 000000000..9540c3de3
--- /dev/null
+++ b/spec/routing/well_known_routes_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+describe 'the host-meta route' do
+  it 'routes to correct place with xml format' do
+    expect(get('/.well-known/host-meta')).
+      to route_to('well_known/host_meta#show', format: 'xml')
+  end
+end
+
+describe 'the webfinger route' do
+  it 'routes to correct place with json format' do
+    expect(get('/.well-known/webfinger')).
+      to route_to('well_known/webfinger#show', format: 'json')
+  end
+end