--- /dev/null
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Settings::Exports::BaseController do
+ controller do
+ 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="base.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
describe Settings::Exports::BlockedAccountsController do
render_views
- before do
- sign_in Fabricate(:user), scope: :user
- end
-
describe 'GET #index' do
it 'returns a csv of the blocking accounts' do
+ user = Fabricate(:user)
+ user.account.block!(Fabricate(:account, username: 'username', domain: 'domain'))
+
+ sign_in user, scope: :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="blocked_accounts.csv"'
+ expect(response.body).to eq "username@domain\n"
end
end
end
describe Settings::Exports::FollowingAccountsController do
render_views
- before do
- sign_in Fabricate(:user), scope: :user
- end
-
describe 'GET #index' do
it 'returns a csv of the following accounts' do
+ user = Fabricate(:user)
+ user.account.follow!(Fabricate(:account, username: 'username', domain: 'domain'))
+
+ sign_in user, scope: :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="following_accounts.csv"'
+ expect(response.body).to eq "username@domain\n"
end
end
end
describe Settings::Exports::MutedAccountsController do
render_views
- before do
- sign_in Fabricate(:user), scope: :user
- end
-
describe 'GET #index' do
it 'returns a csv of the muting accounts' do
+ user = Fabricate(:user)
+ user.account.mute!(Fabricate(:account, username: 'username', domain: 'domain'))
+
+ sign_in user, scope: :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="muted_accounts.csv"'
+ expect(response.body).to eq "username@domain\n"
end
end
end