3 RSpec
.describe Admin
::AccountsController, type
: :controller do
6 before
{ sign_in current_user
, scope
: :user }
8 describe
'GET #index' do
9 let(:current_user) { Fabricate(:user, admin
: true) }
12 default_per_page
= Account
.default_per_page
13 Account
.paginates_per
1
15 Account
.paginates_per default_per_page
18 it
'filters with parameters' do
19 new
= AccountFilter
.method(:new)
21 expect(AccountFilter
).to
receive(:new) do |params
|
24 expect(h
[:local]).to eq
'1'
25 expect(h
[:remote]).to eq
'1'
26 expect(h
[:by_domain]).to eq
'domain'
27 expect(h
[:active]).to eq
'1'
28 expect(h
[:silenced]).to eq
'1'
29 expect(h
[:suspended]).to eq
'1'
30 expect(h
[:username]).to eq
'username'
31 expect(h
[:display_name]).to eq
'display name'
32 expect(h
[:email]).to eq
'local-part@domain'
33 expect(h
[:ip]).to eq
'0.0.0.42'
46 display_name
: 'display name',
47 email
: 'local-part@domain',
52 it
'paginates accounts' do
55 get
:index, params
: { page
: 2 }
57 accounts
= assigns(:accounts)
58 expect(accounts
.count
).to eq
1
59 expect(accounts
.klass
).to be Account
62 it
'returns http success' do
64 expect(response
).to
have_http_status(200)
68 describe
'GET #show' do
69 let(:current_user) { Fabricate(:user, admin
: true) }
70 let(:account) { Fabricate(:account, username
: 'bob') }
72 it
'returns http success' do
73 get
:show, params
: { id
: account
.id
}
74 expect(response
).to
have_http_status(200)
78 describe
'POST #subscribe' do
79 subject
{ post
:subscribe, params
: { id
: account
.id
} }
81 let(:current_user) { Fabricate(:user, admin
: admin
) }
82 let(:account) { Fabricate(:account) }
84 context
'when user is admin' do
87 it
{ is_expected
.to redirect_to
admin_account_path(account
.id
) }
90 context
'when user is not admin' do
93 it
{ is_expected
.to have_http_status
:forbidden }
97 describe
'POST #unsubscribe' do
98 subject
{ post
:unsubscribe, params
: { id
: account
.id
} }
100 let(:current_user) { Fabricate(:user, admin
: admin
) }
101 let(:account) { Fabricate(:account) }
103 context
'when user is admin' do
106 it
{ is_expected
.to redirect_to
admin_account_path(account
.id
) }
109 context
'when user is not admin' do
110 let(:admin) { false }
112 it
{ is_expected
.to have_http_status
:forbidden }
116 describe
'POST #memorialize' do
117 subject
{ post
:memorialize, params
: { id
: account
.id
} }
119 let(:current_user) { Fabricate(:user, admin
: current_user_admin
) }
120 let(:account) { Fabricate(:account, user
: user
) }
121 let(:user) { Fabricate(:user, admin
: target_user_admin
) }
123 context
'when user is admin' do
124 let(:current_user_admin) { true }
126 context
'when target user is admin' do
127 let(:target_user_admin) { true }
129 it
'fails to memorialize account' do
130 is_expected
.to have_http_status
:forbidden
131 expect(account
.reload
).not_to be_memorial
135 context
'when target user is not admin' do
136 let(:target_user_admin) { false }
138 it
'succeeds in memorializing account' do
139 is_expected
.to redirect_to
admin_account_path(account
.id
)
140 expect(account
.reload
).to be_memorial
145 context
'when user is not admin' do
146 let(:current_user_admin) { false }
148 context
'when target user is admin' do
149 let(:target_user_admin) { true }
151 it
'fails to memorialize account' do
152 is_expected
.to have_http_status
:forbidden
153 expect(account
.reload
).not_to be_memorial
157 context
'when target user is not admin' do
158 let(:target_user_admin) { false }
160 it
'fails to memorialize account' do
161 is_expected
.to have_http_status
:forbidden
162 expect(account
.reload
).not_to be_memorial
168 describe
'POST #enable' do
169 subject
{ post
:enable, params
: { id
: account
.id
} }
171 let(:current_user) { Fabricate(:user, admin
: admin
) }
172 let(:account) { Fabricate(:account, user
: user
) }
173 let(:user) { Fabricate(:user, disabled
: true) }
175 context
'when user is admin' do
178 it
'succeeds in enabling account' do
179 is_expected
.to redirect_to
admin_account_path(account
.id
)
180 expect(user
.reload
).not_to be_disabled
184 context
'when user is not admin' do
185 let(:admin) { false }
187 it
'fails to enable account' do
188 is_expected
.to have_http_status
:forbidden
189 expect(user
.reload
).to be_disabled
194 describe
'POST #redownload' do
195 subject
{ post
:redownload, params
: { id
: account
.id
} }
197 let(:current_user) { Fabricate(:user, admin
: admin
) }
198 let(:account) { Fabricate(:account) }
200 context
'when user is admin' do
203 it
'succeeds in redownloadin' do
204 is_expected
.to redirect_to
admin_account_path(account
.id
)
208 context
'when user is not admin' do
209 let(:admin) { false }
211 it
'fails to redownload' do
212 is_expected
.to have_http_status
:forbidden
217 describe
'POST #remove_avatar' do
218 subject
{ post
:remove_avatar, params
: { id
: account
.id
} }
220 let(:current_user) { Fabricate(:user, admin
: admin
) }
221 let(:account) { Fabricate(:account) }
223 context
'when user is admin' do
226 it
'succeeds in removing avatar' do
227 is_expected
.to redirect_to
admin_account_path(account
.id
)
231 context
'when user is not admin' do
232 let(:admin) { false }
234 it
'fails to remove avatar' do
235 is_expected
.to have_http_status
:forbidden