diff options
Diffstat (limited to 'spec/controllers/api/v1')
-rw-r--r-- | spec/controllers/api/v1/admin/accounts_controller_spec.rb | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb index 3f61bbc0b..b69595f7e 100644 --- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb +++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb @@ -30,15 +30,44 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do end describe 'GET #index' do + let!(:remote_account) { Fabricate(:account, domain: 'example.org') } + let!(:other_remote_account) { Fabricate(:account, domain: 'foo.bar') } + let!(:suspended_account) { Fabricate(:account, suspended: true) } + let!(:suspended_remote) { Fabricate(:account, domain: 'foo.bar', suspended: true) } + let!(:disabled_account) { Fabricate(:user, disabled: true).account } + let!(:pending_account) { Fabricate(:user, approved: false).account } + let!(:admin_account) { user.account } + + let(:params) { {} } + before do - get :index + pending_account.user.update(approved: false) + get :index, params: params end it_behaves_like 'forbidden for wrong scope', 'write:statuses' it_behaves_like 'forbidden for wrong role', 'user' - it 'returns http success' do - expect(response).to have_http_status(200) + [ + [{ active: 'true', local: 'true', staff: 'true' }, [:admin_account]], + [{ by_domain: 'example.org', remote: 'true' }, [:remote_account]], + [{ suspended: 'true' }, [:suspended_account]], + [{ disabled: 'true' }, [:disabled_account]], + [{ pending: 'true' }, [:pending_account]], + ].each do |params, expected_results| + context "when called with #{params.inspect}" do + let(:params) { params } + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it "returns the correct accounts (#{expected_results.inspect})" do + json = body_as_json + + expect(json.map { |a| a[:id].to_i }).to eq (expected_results.map { |symbol| send(symbol).id }) + end + end end end |