commit: c347327d54571f3e3e5ac2a01e6ad9e164e1d802
parent: fd328cf6e8fac0af2b3ec7f755a734f0fe2385c7
Author: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Date: Tue, 30 May 2017 01:05:01 +0900
Spec Settings::Exports (#3384)
* Spec output of Settings::Exports::BlockedAccountsController
* Spec output of Settings::Exports::FollowingAccountsController
* Spec output of Settings::Exports::MutedAccountsController
* Spec Settings::Exports::BaseController
This commit removes duplicate specs in classes inheriting
Settings::Exports::BaseController as well.
Diffstat:
4 files changed, 44 insertions(+), 21 deletions(-)
diff --git a/spec/controllers/settings/exports/base_controller_spec.rb b/spec/controllers/settings/exports/base_controller_spec.rb
@@ -0,0 +1,29 @@
+# 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
diff --git a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
@@ -3,17 +3,15 @@ require 'rails_helper'
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
diff --git a/spec/controllers/settings/exports/following_accounts_controller_spec.rb b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
@@ -3,17 +3,15 @@ require 'rails_helper'
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
diff --git a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
@@ -3,17 +3,15 @@ require 'rails_helper'
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