summaryrefslogtreecommitdiffstats
path: root/spec/controllers/concerns/export_controller_concern_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/concerns/export_controller_concern_spec.rb')
-rw-r--r--spec/controllers/concerns/export_controller_concern_spec.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/controllers/concerns/export_controller_concern_spec.rb b/spec/controllers/concerns/export_controller_concern_spec.rb
new file mode 100644
index 00000000000..9d6f782b99b
--- /dev/null
+++ b/spec/controllers/concerns/export_controller_concern_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ApplicationController, type: :controller do
+ controller do
+ include ExportControllerConcern
+ def index
+ send_export_file
+ end
+ def export_data
+ @export.account.username
+ end
+ end
+
+ describe 'GET #index' do
+ it 'returns a csv of the exported data when signed in' do
+ user = Fabricate(:user)
+ sign_in user
+ get :index, format: :csv
+
+ expect(response).to have_http_status(:success)
+ expect(response.content_type).to eq 'text/csv'
+ expect(response.headers['Content-Disposition']).to eq 'attachment; filename="anonymous.csv"'
+ expect(response.body).to eq user.account.username
+ end
+
+ it 'returns unauthorized when not signed in' do
+ get :index, format: :csv
+ expect(response).to have_http_status(:unauthorized)
+ end
+ end
+end