mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-25 15:09:29 +00:00
Convert "CSV export" settings controller specs to request specs (#31601)
This commit is contained in:
parent
38a3466741
commit
a7f8417795
|
@ -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