mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 12:55:56 +01:00
Convert "CSV export" settings controller specs to request specs (#31601)
This commit is contained in:
parent
38a3466741
commit
a7f8417795
12 changed files with 252 additions and 122 deletions
|
@ -1,19 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Exports::BlockedAccountsController do
|
||||
render_views
|
||||
|
||||
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.body).to eq "username@domain\n"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,20 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Exports::BlockedDomainsController do
|
||||
render_views
|
||||
|
||||
describe 'GET #index' do
|
||||
it 'returns a csv of the domains' do
|
||||
account = Fabricate(:account, domain: 'example.com')
|
||||
user = Fabricate(:user, account: account)
|
||||
Fabricate(:account_domain_block, domain: 'example.com', account: account)
|
||||
|
||||
sign_in user, scope: :user
|
||||
get :index, format: :csv
|
||||
|
||||
expect(response.body).to eq "example.com\n"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,24 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Exports::BookmarksController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
let(:account) { Fabricate(:account, domain: 'foo.bar') }
|
||||
let(:status) { Fabricate(:status, account: account, uri: 'https://foo.bar/statuses/1312') }
|
||||
|
||||
describe 'GET #index' do
|
||||
before do
|
||||
user.account.bookmarks.create!(status: status)
|
||||
end
|
||||
|
||||
it 'returns a csv of the bookmarked toots' do
|
||||
sign_in user, scope: :user
|
||||
get :index, format: :csv
|
||||
|
||||
expect(response.body).to eq "https://foo.bar/statuses/1312\n"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,19 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Exports::FollowingAccountsController do
|
||||
render_views
|
||||
|
||||
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.body).to eq "Account address,Show boosts,Notify on new posts,Languages\nusername@domain,true,false,\n"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,21 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Exports::ListsController do
|
||||
render_views
|
||||
|
||||
describe 'GET #index' do
|
||||
it 'returns a csv of the domains' do
|
||||
account = Fabricate(:account)
|
||||
user = Fabricate(:user, account: account)
|
||||
list = Fabricate(:list, account: account, title: 'The List')
|
||||
Fabricate(:list_account, list: list, account: account)
|
||||
|
||||
sign_in user, scope: :user
|
||||
get :index, format: :csv
|
||||
|
||||
expect(response.body).to match 'The List'
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,19 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Exports::MutedAccountsController do
|
||||
render_views
|
||||
|
||||
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.body).to eq "Account address,Hide notifications\nusername@domain,true\n"
|
||||
end
|
||||
end
|
||||
end
|
42
spec/requests/settings/exports/blocked_accounts_spec.rb
Normal file
42
spec/requests/settings/exports/blocked_accounts_spec.rb
Normal file
|
@ -0,0 +1,42 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Settings / Exports / Blocked Accounts' do
|
||||
describe 'GET /settings/exports/blocks' do
|
||||
context 'with a signed in user who has blocked accounts' do
|
||||
let(:user) { Fabricate :user }
|
||||
|
||||
before do
|
||||
Fabricate(
|
||||
:block,
|
||||
account: user.account,
|
||||
target_account: Fabricate(:account, username: 'username', domain: 'domain')
|
||||
)
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'returns a CSV with the blocking accounts' do
|
||||
get '/settings/exports/blocks.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(200)
|
||||
expect(response.content_type)
|
||||
.to eq('text/csv')
|
||||
expect(response.body)
|
||||
.to eq(<<~CSV)
|
||||
username@domain
|
||||
CSV
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when signed out' do
|
||||
it 'returns unauthorized' do
|
||||
get '/settings/exports/blocks.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(401)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
39
spec/requests/settings/exports/blocked_domains_spec.rb
Normal file
39
spec/requests/settings/exports/blocked_domains_spec.rb
Normal file
|
@ -0,0 +1,39 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Settings / Exports / Blocked Domains' do
|
||||
describe 'GET /settings/exports/domain_blocks' do
|
||||
context 'with a signed in user who has blocked domains' do
|
||||
let(:account) { Fabricate :account, domain: 'example.com' }
|
||||
let(:user) { Fabricate :user, account: account }
|
||||
|
||||
before do
|
||||
Fabricate(:account_domain_block, domain: 'example.com', account: account)
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'returns a CSV with the domains' do
|
||||
get '/settings/exports/domain_blocks.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(200)
|
||||
expect(response.content_type)
|
||||
.to eq('text/csv')
|
||||
expect(response.body)
|
||||
.to eq(<<~CSV)
|
||||
example.com
|
||||
CSV
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when signed out' do
|
||||
it 'returns unauthorized' do
|
||||
get '/settings/exports/domain_blocks.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(401)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
44
spec/requests/settings/exports/bookmarks_spec.rb
Normal file
44
spec/requests/settings/exports/bookmarks_spec.rb
Normal file
|
@ -0,0 +1,44 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Settings / Exports / Bookmarks' do
|
||||
describe 'GET /settings/exports/bookmarks' do
|
||||
context 'with a signed in user who has bookmarks' do
|
||||
let(:account) { Fabricate(:account, domain: 'foo.bar') }
|
||||
let(:status) { Fabricate(:status, account: account, uri: 'https://foo.bar/statuses/1312') }
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
||||
before do
|
||||
Fabricate(
|
||||
:bookmark,
|
||||
account: user.account,
|
||||
status: status
|
||||
)
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'returns a CSV with the bookmarked statuses' do
|
||||
get '/settings/exports/bookmarks.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(200)
|
||||
expect(response.content_type)
|
||||
.to eq('text/csv')
|
||||
expect(response.body)
|
||||
.to eq(<<~CSV)
|
||||
https://foo.bar/statuses/1312
|
||||
CSV
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when signed out' do
|
||||
it 'returns unauthorized' do
|
||||
get '/settings/exports/bookmarks.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(401)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
44
spec/requests/settings/exports/following_accounts_spec.rb
Normal file
44
spec/requests/settings/exports/following_accounts_spec.rb
Normal file
|
@ -0,0 +1,44 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Settings / Exports / Following Accounts' do
|
||||
describe 'GET /settings/exports/follows' do
|
||||
context 'with a signed in user who is following accounts' do
|
||||
let(:user) { Fabricate :user }
|
||||
|
||||
before do
|
||||
Fabricate(
|
||||
:follow,
|
||||
account: user.account,
|
||||
target_account: Fabricate(:account, username: 'username', domain: 'domain'),
|
||||
languages: ['en']
|
||||
)
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'returns a CSV with the accounts' do
|
||||
get '/settings/exports/follows.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(200)
|
||||
expect(response.content_type)
|
||||
.to eq('text/csv')
|
||||
expect(response.body)
|
||||
.to eq(<<~CSV)
|
||||
Account address,Show boosts,Notify on new posts,Languages
|
||||
username@domain,true,false,en
|
||||
CSV
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when signed out' do
|
||||
it 'returns unauthorized' do
|
||||
get '/settings/exports/follows.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(401)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
40
spec/requests/settings/exports/lists_spec.rb
Normal file
40
spec/requests/settings/exports/lists_spec.rb
Normal file
|
@ -0,0 +1,40 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Settings / Exports / Lists' do
|
||||
describe 'GET /settings/exports/lists' do
|
||||
context 'with a signed in user who has lists' do
|
||||
let(:account) { Fabricate(:account, username: 'test', domain: 'example.com') }
|
||||
let(:list) { Fabricate :list, account: account, title: 'The List' }
|
||||
let(:user) { Fabricate(:user, account: account) }
|
||||
|
||||
before do
|
||||
Fabricate(:list_account, list: list, account: account)
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'returns a CSV with the list' do
|
||||
get '/settings/exports/lists.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(200)
|
||||
expect(response.content_type)
|
||||
.to eq('text/csv')
|
||||
expect(response.body)
|
||||
.to eq(<<~CSV)
|
||||
The List,test@example.com
|
||||
CSV
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when signed out' do
|
||||
it 'returns unauthorized' do
|
||||
get '/settings/exports/lists.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(401)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
43
spec/requests/settings/exports/muted_accounts_spec.rb
Normal file
43
spec/requests/settings/exports/muted_accounts_spec.rb
Normal file
|
@ -0,0 +1,43 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Settings / Exports / Muted Accounts' do
|
||||
describe 'GET /settings/exports/mutes' do
|
||||
context 'with a signed in user who has muted accounts' do
|
||||
let(:user) { Fabricate :user }
|
||||
|
||||
before do
|
||||
Fabricate(
|
||||
:mute,
|
||||
account: user.account,
|
||||
target_account: Fabricate(:account, username: 'username', domain: 'domain')
|
||||
)
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'returns a CSV with the muted accounts' do
|
||||
get '/settings/exports/mutes.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(200)
|
||||
expect(response.content_type)
|
||||
.to eq('text/csv')
|
||||
expect(response.body)
|
||||
.to eq(<<~CSV)
|
||||
Account address,Hide notifications
|
||||
username@domain,true
|
||||
CSV
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when signed out' do
|
||||
it 'returns unauthorized' do
|
||||
get '/settings/exports/mutes.csv'
|
||||
|
||||
expect(response)
|
||||
.to have_http_status(401)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue