Skip to content
Snippets Groups Projects
Unverified Commit c770c32c authored by Hadi Cheaito's avatar Hadi Cheaito Committed by GitHub
Browse files

SuperAdmin rspec tests (#4406)

parent db1d0af2
Branches
Tags
No related merge requests found
......@@ -32,7 +32,6 @@ module Api
def verified
sort_config = config_sorting(allowed_columns: %w[name roles.name])
# TODO: Change to get verified users only
users = User.includes(:role)
.with_provider(current_provider)
.where(status: 'active')
......
......@@ -51,6 +51,22 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do
expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recs.pluck(:id))
end
context 'SuperAdmin accessing recordings for provider other than current provider' do
before do
super_admin_role = create(:role, provider: 'bn', name: 'SuperAdmin')
super_admin = create(:user, provider: 'bn', role: super_admin_role)
sign_in_user(super_admin)
end
it 'returns the list of recordings' do
recordings = [create(:recording, name: 'Tinky-Winky'), create(:recording, name: 'Dipsy'), create(:recording, name: 'Laa-Laa')]
get :index
expect(response).to have_http_status(:ok)
expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recordings.pluck(:id))
end
end
context 'user without ManageRecordings permission' do
before do
sign_in_user(user)
......
......@@ -26,6 +26,27 @@ RSpec.describe Api::V1::Admin::ServerRoomsController, type: :controller do
.to match_array(Room.all.pluck(:friendly_id))
end
context 'SuperAdmin accessing rooms for provider other than current provider' do
before do
super_admin_role = create(:role, provider: 'bn', name: 'SuperAdmin')
super_admin = create(:user, provider: 'bn', role: super_admin_role)
sign_in_user(super_admin)
end
it 'returns all the Server Rooms from all users' do
user_one = create(:user)
user_two = create(:user)
create_list(:room, 2, user_id: user_one.id)
create_list(:room, 2, user_id: user_two.id)
allow_any_instance_of(BigBlueButtonApi).to receive(:active_meetings).and_return([])
get :index
expect(JSON.parse(response.body)['data'].map { |room| room['friendly_id'] })
.to match_array(Room.all.pluck(:friendly_id))
end
end
it 'returns the server room status as online if the meeting has started' do
active_server_room = create(:room)
active_server_room.update(meeting_id: 'hulsdzwvitlk1dbekzxdprshsxmvycvar0jeaszc')
......
......@@ -13,11 +13,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller do
describe '#verified_users' do
it 'returns the list of active users' do
# TODO: this test doesnt test anything
# TODO: active, banned, etc users feature has not been implemented yet (19.08)
# TODO: Change this test to return active users and not just any users
users = User.all
users = create_list(:user, 3, status: 'active') + [user, user_with_manage_users_permission]
get :verified
expect(response).to have_http_status(:ok)
response_user_ids = JSON.parse(response.body)['data'].map { |user| user['id'] }
......@@ -25,8 +21,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller do
end
it 'excludes users with a different provider' do
greenlight_users = create_list(:user, 3, provider: 'greenlight')
greenlight_users << user_with_manage_users_permission
greenlight_users = create_list(:user, 3, provider: 'greenlight') + [user_with_manage_users_permission]
role_with_provider_test = create(:role, provider: 'test')
create(:user, provider: 'test', role: role_with_provider_test)
......@@ -78,6 +73,40 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller do
end
end
describe '#verified/banned/pending for SuperAdmin' do
context 'SuperAdmin accessing users for provider other than current provider' do
before do
super_admin_role = create(:role, provider: 'bn', name: 'SuperAdmin')
super_admin = create(:user, provider: 'bn', role: super_admin_role)
sign_in_user(super_admin)
end
it 'returns the list of active users' do
users = create_list(:user, 3, status: 'active') + [user, user_with_manage_users_permission]
get :verified
expect(response).to have_http_status(:ok)
response_user_ids = JSON.parse(response.body)['data'].map { |user| user['id'] }
expect(response_user_ids).to match_array(users.pluck(:id))
end
it 'returns the list of pending users' do
users = create_list(:user, 3, status: 'pending')
get :pending
expect(response).to have_http_status(:ok)
response_user_ids = JSON.parse(response.body)['data'].map { |user| user['id'] }
expect(response_user_ids).to match_array(users.pluck(:id))
end
it 'returns the list of banned users' do
users = create_list(:user, 3, status: 'banned')
get :banned
expect(response).to have_http_status(:ok)
response_user_ids = JSON.parse(response.body)['data'].map { |user| user['id'] }
expect(response_user_ids).to match_array(users.pluck(:id))
end
end
end
describe '#update' do
it 'updates a users status' do
post :update, params: { id: user.id, user: { status: 'banned' } }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment