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.
This commit is contained in:
Akihiko Odaki 2017-05-30 01:05:01 +09:00 committed by Eugen Rochko
parent fd328cf6e8
commit c347327d54
4 changed files with 44 additions and 21 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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