about summary refs log tree commit diff
path: root/spec/controllers/filters/statuses_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/filters/statuses_controller_spec.rb')
-rw-r--r--spec/controllers/filters/statuses_controller_spec.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/controllers/filters/statuses_controller_spec.rb b/spec/controllers/filters/statuses_controller_spec.rb
new file mode 100644
index 000000000..492361188
--- /dev/null
+++ b/spec/controllers/filters/statuses_controller_spec.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Filters::StatusesController do
+  render_views
+
+  describe 'GET #index' do
+    let(:filter) { Fabricate(:custom_filter) }
+
+    context 'with signed out user' do
+      it 'redirects' do
+        get :index, params: { filter_id: filter }
+
+        expect(response).to be_redirect
+      end
+    end
+
+    context 'with a signed in user' do
+      context 'with the filter user signed in' do
+        before { sign_in(filter.account.user) }
+
+        it 'returns http success' do
+          get :index, params: { filter_id: filter }
+
+          expect(response).to have_http_status(200)
+        end
+      end
+
+      context 'with another user signed in' do
+        before { sign_in(Fabricate(:user)) }
+
+        it 'returns http not found' do
+          get :index, params: { filter_id: filter }
+
+          expect(response).to have_http_status(404)
+        end
+      end
+    end
+  end
+end