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