From 16bf14f9bf56c259356e8f25b35e1fe8abb89f52 Mon Sep 17 00:00:00 2001 From: Ahmad Farhat <ahmad.af.farhat@gmail.com> Date: Tue, 3 Oct 2023 11:37:42 -0400 Subject: [PATCH] Fix CI (#5432) * Fix Greenlight CI * Rubocop fixes --- .github/workflows/ci.build.push.yml | 2 + .rubocop.yml | 3 ++ .../api/v1/admin/server_rooms_controller.rb | 2 +- .../api/v1/rooms_configurations_controller.rb | 2 +- app/controllers/api/v1/rooms_controller.rb | 2 +- .../api/v1/verify_account_controller.rb | 2 +- app/controllers/concerns/authorizable.rb | 8 +-- app/controllers/concerns/presentable.rb | 2 +- ..._storage_variant_records.active_storage.rb | 2 +- lib/tasks/poller.rake | 2 - .../admin/invitations_controller_spec.rb | 6 +-- .../admin/role_permissions_controller_spec.rb | 8 +-- .../admin/roles_controller_spec.rb | 24 ++++----- .../server_recordings_controller_spec.rb | 14 +++--- .../admin/server_rooms_controller_spec.rb | 6 +-- .../admin/site_settings_controller_spec.rb | 8 +-- .../admin/users_controller_spec.rb | 14 +++--- spec/controllers/external_controller_spec.rb | 6 +-- spec/controllers/meetings_controller_spec.rb | 18 +++---- .../controllers/recordings_controller_spec.rb | 34 ++++++------- .../reset_password_controller_spec.rb | 2 +- .../room_settings_controller_spec.rb | 4 +- .../rooms_configurations_controller_spec.rb | 12 ++--- spec/controllers/rooms_controller_spec.rb | 50 +++++++++---------- spec/controllers/sessions_controller_spec.rb | 8 +-- .../shared_accesses_controller_spec.rb | 16 +++--- .../site_settings_controller_spec.rb | 4 +- spec/controllers/users_controller_spec.rb | 22 ++++---- 28 files changed, 143 insertions(+), 140 deletions(-) diff --git a/.github/workflows/ci.build.push.yml b/.github/workflows/ci.build.push.yml index 06f68a2f..cb894d4c 100644 --- a/.github/workflows/ci.build.push.yml +++ b/.github/workflows/ci.build.push.yml @@ -9,6 +9,8 @@ on: - v2 - v3 - translations* + - snyk* + - dependabot* jobs: main: diff --git a/.rubocop.yml b/.rubocop.yml index 0b5ffffe..9f6ae1c9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -95,3 +95,6 @@ Rails/Output: Rails/RootPathnameMethods: Enabled: false +Rails/ThreeStateBooleanColumn: + Enabled: false + diff --git a/app/controllers/api/v1/admin/server_rooms_controller.rb b/app/controllers/api/v1/admin/server_rooms_controller.rb index c45fdc15..f5099826 100644 --- a/app/controllers/api/v1/admin/server_rooms_controller.rb +++ b/app/controllers/api/v1/admin/server_rooms_controller.rb @@ -36,7 +36,7 @@ module Api pagy, paged_rooms = pagy(rooms) - RunningMeetingChecker.new(rooms: paged_rooms.select(&:online)).call if paged_rooms.select(&:online).any? + RunningMeetingChecker.new(rooms: paged_rooms.select(&:online)).call if paged_rooms.any?(&:online) render_data data: paged_rooms, meta: pagy_metadata(pagy), serializer: ServerRoomSerializer, status: :ok end diff --git a/app/controllers/api/v1/rooms_configurations_controller.rb b/app/controllers/api/v1/rooms_configurations_controller.rb index 66524eb4..1b209354 100644 --- a/app/controllers/api/v1/rooms_configurations_controller.rb +++ b/app/controllers/api/v1/rooms_configurations_controller.rb @@ -45,7 +45,7 @@ module Api render_data data: config_value, status: :ok rescue StandardError - return render_error status: :not_found unless config_value + render_error status: :not_found unless config_value end end end diff --git a/app/controllers/api/v1/rooms_controller.rb b/app/controllers/api/v1/rooms_controller.rb index 0cfd7962..ffde5ff5 100644 --- a/app/controllers/api/v1/rooms_controller.rb +++ b/app/controllers/api/v1/rooms_controller.rb @@ -51,7 +51,7 @@ module Api room.shared = true if room.user_id != current_user.id end - RunningMeetingChecker.new(rooms: rooms.select(&:online)).call if rooms.select(&:online).any? + RunningMeetingChecker.new(rooms: rooms.select(&:online)).call if rooms.any?(&:online) render_data data: rooms, status: :ok end diff --git a/app/controllers/api/v1/verify_account_controller.rb b/app/controllers/api/v1/verify_account_controller.rb index 8be2b92f..a0e4430a 100644 --- a/app/controllers/api/v1/verify_account_controller.rb +++ b/app/controllers/api/v1/verify_account_controller.rb @@ -62,7 +62,7 @@ module Api return render_error status: :bad_request unless params[:user] @user = User.find_by id: params[:user][:id] - return render_data status: :ok unless @user && !@user.verified? + render_data status: :ok unless @user && !@user.verified? end end end diff --git a/app/controllers/concerns/authorizable.rb b/app/controllers/concerns/authorizable.rb index 5de6097d..cea926b7 100644 --- a/app/controllers/concerns/authorizable.rb +++ b/app/controllers/concerns/authorizable.rb @@ -21,17 +21,17 @@ module Authorizable # Unless the request format is explicitly json Rails will mitigate the responsibility to CSR to handle it. def ensure_valid_request - return render 'components/index' if !Rails.env.development? && !valid_api_request? + render 'components/index' if !Rails.env.development? && !valid_api_request? end # Ensures that the user is logged in def ensure_authenticated - return render_error status: :unauthorized unless current_user + render_error status: :unauthorized unless current_user end # PermissionsChecker service will return a true or false depending on whether the current_user's role has the provided permission_name def ensure_authorized(permission_names, user_id: nil, friendly_id: nil, record_id: nil) - return render_error status: :forbidden unless PermissionsChecker.new( + render_error status: :forbidden unless PermissionsChecker.new( current_user:, permission_names:, user_id:, @@ -42,7 +42,7 @@ module Authorizable end def ensure_super_admin - return render_error status: :forbidden unless current_user.super_admin? + render_error status: :forbidden unless current_user.super_admin? end private diff --git a/app/controllers/concerns/presentable.rb b/app/controllers/concerns/presentable.rb index 6ab661f5..06a59f20 100644 --- a/app/controllers/concerns/presentable.rb +++ b/app/controllers/concerns/presentable.rb @@ -20,7 +20,7 @@ module Presentable extend ActiveSupport::Concern def presentation_file_name(room) - return room.presentation.filename if room.presentation.attached? + room.presentation.filename if room.presentation.attached? end def presentation_thumbnail(room) diff --git a/db/migrate/20230705183746_create_active_storage_variant_records.active_storage.rb b/db/migrate/20230705183746_create_active_storage_variant_records.active_storage.rb index 91e341db..2a94068d 100644 --- a/db/migrate/20230705183746_create_active_storage_variant_records.active_storage.rb +++ b/db/migrate/20230705183746_create_active_storage_variant_records.active_storage.rb @@ -7,7 +7,7 @@ class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0] # Use Active Record's configured type for primary key - create_table :active_storage_variant_records, id: primary_key_type, if_not_exists: true do |t| # rubocop:disable Rails/CreateTableWithTimestamps + create_table :active_storage_variant_records, id: primary_key_type, if_not_exists: true do |t| t.belongs_to :blob, null: false, index: false, type: blobs_primary_key_type t.string :variation_digest, null: false diff --git a/lib/tasks/poller.rake b/lib/tasks/poller.rake index a4a3070d..b8809108 100644 --- a/lib/tasks/poller.rake +++ b/lib/tasks/poller.rake @@ -46,7 +46,6 @@ namespace :poller do online_meetings = Room.includes(:user).where(online: true) RunningMeetingChecker.new(rooms: online_meetings).call - rescue StandardError => e err "Unable to poll meetings. Error: #{e}" end @@ -72,7 +71,6 @@ namespace :poller do end RecordingCreator.new(recording:).call - rescue StandardError => e err "Unable to poll Recording:\nRecordID: #{recording[:recordID]}\nError: #{e}" next diff --git a/spec/controllers/admin/invitations_controller_spec.rb b/spec/controllers/admin/invitations_controller_spec.rb index 12392a14..5ad306a9 100644 --- a/spec/controllers/admin/invitations_controller_spec.rb +++ b/spec/controllers/admin/invitations_controller_spec.rb @@ -39,7 +39,7 @@ RSpec.describe Api::V1::Admin::InvitationsController, type: :controller do get :index expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('email')).to match_array(invitations.pluck(:email)) + expect(response.parsed_body['data'].pluck('email')).to match_array(invitations.pluck(:email)) end it 'returns the invitations according to the query' do @@ -52,7 +52,7 @@ RSpec.describe Api::V1::Admin::InvitationsController, type: :controller do get :index, params: { search: 'test.com' } - expect(JSON.parse(response.body)['data'].pluck('email')).to match_array(invitations.pluck(:email)) + expect(response.parsed_body['data'].pluck('email')).to match_array(invitations.pluck(:email)) end context 'user without ManageUsers permission' do @@ -74,7 +74,7 @@ RSpec.describe Api::V1::Admin::InvitationsController, type: :controller do expect { post :create, params: { invitations: valid_params } }.to change(Invitation, :count).by(3) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end it 'emails the invitations to the invited user' do diff --git a/spec/controllers/admin/role_permissions_controller_spec.rb b/spec/controllers/admin/role_permissions_controller_spec.rb index 7f7559c4..fdcf26f5 100644 --- a/spec/controllers/admin/role_permissions_controller_spec.rb +++ b/spec/controllers/admin/role_permissions_controller_spec.rb @@ -32,10 +32,10 @@ RSpec.describe Api::V1::Admin::RolePermissionsController, type: :controller do get :index, params: { role_id: user_with_manage_roles_permission.role_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']['CreateRoom']).to eq('true') - expect(JSON.parse(response.body)['data']['RoomLimit']).to eq('100') - expect(JSON.parse(response.body)['data']['SharedList']).to eq('true') - expect(JSON.parse(response.body)['data']['ManageRoles']).to eq('true') + expect(response.parsed_body['data']['CreateRoom']).to eq('true') + expect(response.parsed_body['data']['RoomLimit']).to eq('100') + expect(response.parsed_body['data']['SharedList']).to eq('true') + expect(response.parsed_body['data']['ManageRoles']).to eq('true') end context 'user without ManageRoles permission' do diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb index 23e7d37f..0659ee43 100644 --- a/spec/controllers/admin/roles_controller_spec.rb +++ b/spec/controllers/admin/roles_controller_spec.rb @@ -35,7 +35,7 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do get :index expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(roles.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(roles.pluck(:id)) end it 'returns the roles according to the query' do @@ -44,14 +44,14 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do create_list(:role, 3) get :index, params: { search: 'role' } - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(search_roles.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(search_roles.pluck(:id)) end it 'returns all roles if the search bar is empty' do create_list(:role, 5) get :index, params: { search: '' } - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(Role.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(Role.pluck(:id)) end it 'excludes roles with a different provider' do @@ -62,7 +62,7 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do get :index - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(greenlight_roles.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(greenlight_roles.pluck(:id)) end context 'user with ManageUser permission' do @@ -79,7 +79,7 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do get :index expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(roles.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(roles.pluck(:id)) end end @@ -108,14 +108,14 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do expect(response).to have_http_status(:ok) # Order is important match_array isn't adequate for this test. - expect(JSON.parse(response.body)['data'].pluck('name')).to eq(roles.sort.reverse) + expect(response.parsed_body['data'].pluck('name')).to eq(roles.sort.reverse) end it 'orders the roles list by column and direction ASC' do get :index, params: { sort: { column: 'name', direction: 'ASC' } } expect(response).to have_http_status(:ok) # Order is important match_array isn't adequate for this test. - expect(JSON.parse(response.body)['data'].pluck('name')).to eq(roles.sort) + expect(response.parsed_body['data'].pluck('name')).to eq(roles.sort) end end end @@ -125,14 +125,14 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do valid_params = { name: 'CrazyRole' } expect { post :create, params: { role: valid_params } }.to change(Role, :count).by(1) expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end it 'returns :bad_request for invalid params' do invalid_params = { name: '' } post :create, params: { not_role: invalid_params } expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)['errors']).not_to be_empty + expect(response.parsed_body['errors']).not_to be_empty end it 'calls create_role_permissions on role' do @@ -161,7 +161,7 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do post :update, params: { id: role.id, role: valid_params } expect(role.reload.name).to eq(valid_params[:name]) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end it 'returns :not_found for unfound roles' do @@ -174,7 +174,7 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do invalid_params = { name: '' } post :update, params: { id: role.id, not_role: invalid_params } expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)['errors']).not_to be_empty + expect(response.parsed_body['errors']).not_to be_empty end context 'user without ManageRoles permission' do @@ -196,7 +196,7 @@ RSpec.describe Api::V1::Admin::RolesController, type: :controller do role = create(:role) get :show, params: { id: role.id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']['id']).to eq(role.id) + expect(response.parsed_body['data']['id']).to eq(role.id) end it 'returns :not_found for unfound roles' do diff --git a/spec/controllers/admin/server_recordings_controller_spec.rb b/spec/controllers/admin/server_recordings_controller_spec.rb index 4a405537..cf54781e 100644 --- a/spec/controllers/admin/server_recordings_controller_spec.rb +++ b/spec/controllers/admin/server_recordings_controller_spec.rb @@ -35,7 +35,7 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do get :index expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recordings.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(recordings.pluck(:id)) end it 'returns the recordings according to the query' do @@ -43,7 +43,7 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do get :index, params: { search: 'recording' } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(search_recordings.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(search_recordings.pluck(:id)) end it 'returns all recordings if the search query is empty' do @@ -51,7 +51,7 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do get :index, params: { search: '' } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recordings.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(recordings.pluck(:id)) end it 'excludes rooms whose owners have a different provider' do @@ -64,7 +64,7 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do get :index - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recs.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(recs.pluck(:id)) end context 'SuperAdmin accessing recordings for provider other than current provider' do @@ -79,7 +79,7 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do get :index expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recordings.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(recordings.pluck(:id)) end end @@ -105,14 +105,14 @@ RSpec.describe Api::V1::Admin::ServerRecordingsController, type: :controller do get :index, params: { sort: { column: 'name', direction: 'DESC' } } expect(response).to have_http_status(:ok) # Order is important match_array isn't adequate for this test. - expect(JSON.parse(response.body)['data'].pluck('name')).to eq(%w[P O O]) + expect(response.parsed_body['data'].pluck('name')).to eq(%w[P O O]) end it 'orders the recordings list by column and direction ASC' do get :index, params: { sort: { column: 'name', direction: 'ASC' } } expect(response).to have_http_status(:ok) # Order is important match_array isn't adequate for this test. - expect(JSON.parse(response.body)['data'].pluck('name')).to eq(%w[O O P]) + expect(response.parsed_body['data'].pluck('name')).to eq(%w[O O P]) end end end diff --git a/spec/controllers/admin/server_rooms_controller_spec.rb b/spec/controllers/admin/server_rooms_controller_spec.rb index ec691cfc..b6d135b3 100644 --- a/spec/controllers/admin/server_rooms_controller_spec.rb +++ b/spec/controllers/admin/server_rooms_controller_spec.rb @@ -37,7 +37,7 @@ RSpec.describe Api::V1::Admin::ServerRoomsController, type: :controller do create_list(:room, 2, user_id: user_two.id) get :index - expect(JSON.parse(response.body)['data'].pluck('friendly_id')) + expect(response.parsed_body['data'].pluck('friendly_id')) .to match_array(Room.all.pluck(:friendly_id)) end @@ -56,7 +56,7 @@ RSpec.describe Api::V1::Admin::ServerRoomsController, type: :controller do create_list(:room, 2, user_id: user_two.id) get :index - expect(JSON.parse(response.body)['data'].pluck('friendly_id')) + expect(response.parsed_body['data'].pluck('friendly_id')) .to match_array(Room.all.pluck(:friendly_id)) end end @@ -69,7 +69,7 @@ RSpec.describe Api::V1::Admin::ServerRoomsController, type: :controller do create_list(:room, 2, user: user2) get :index - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(rooms.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(rooms.pluck(:id)) end context 'user without ManageRooms permission' do diff --git a/spec/controllers/admin/site_settings_controller_spec.rb b/spec/controllers/admin/site_settings_controller_spec.rb index 67d122b5..5cd2ed94 100644 --- a/spec/controllers/admin/site_settings_controller_spec.rb +++ b/spec/controllers/admin/site_settings_controller_spec.rb @@ -36,10 +36,10 @@ RSpec.describe Api::V1::Admin::SiteSettingsController, type: :controller do get :index, params: { names: %w[settingA settingB] } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ - 'settingA' => 'valueA', - 'settingB' => 'valueB' - }) + expect(response.parsed_body['data']).to eq({ + 'settingA' => 'valueA', + 'settingB' => 'valueB' + }) end context 'user without ManageSiteSettings permission' do diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb index 3c93f7ca..d5e45968 100644 --- a/spec/controllers/admin/users_controller_spec.rb +++ b/spec/controllers/admin/users_controller_spec.rb @@ -32,7 +32,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller 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'].pluck('id') + response_user_ids = response.parsed_body['data'].pluck('id') expect(response_user_ids).to match_array(users.pluck(:id)) end @@ -43,7 +43,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller do get :verified - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(greenlight_users.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(greenlight_users.pluck(:id)) end end @@ -53,7 +53,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller do get :pending - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(users.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(users.pluck(:id)) end context 'user without ManageUsers permission' do @@ -74,7 +74,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller do get :banned - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(users.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(users.pluck(:id)) end context 'user without ManageUsers permission' do @@ -101,7 +101,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller 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'].pluck('id') + response_user_ids = response.parsed_body['data'].pluck('id') expect(response_user_ids).to match_array(users.pluck(:id)) end @@ -109,7 +109,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller 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'].pluck('id') + response_user_ids = response.parsed_body['data'].pluck('id') expect(response_user_ids).to match_array(users.pluck(:id)) end @@ -117,7 +117,7 @@ RSpec.describe Api::V1::Admin::UsersController, type: :controller 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'].pluck('id') + response_user_ids = response.parsed_body['data'].pluck('id') expect(response_user_ids).to match_array(users.pluck(:id)) end end diff --git a/spec/controllers/external_controller_spec.rb b/spec/controllers/external_controller_spec.rb index 0f28fd71..1dc22e9b 100644 --- a/spec/controllers/external_controller_spec.rb +++ b/spec/controllers/external_controller_spec.rb @@ -389,7 +389,7 @@ RSpec.describe ExternalController, type: :controller do expect(room.reload.online).to be(false) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)).to eq({}) + expect(response.parsed_body).to eq({}) end it 'increments a rooms recordings processing value if the meeting was recorded' do @@ -409,7 +409,7 @@ RSpec.describe ExternalController, type: :controller do expect(room.online).to be(false) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)).to eq({}) + expect(response.parsed_body).to eq({}) end end @@ -418,7 +418,7 @@ RSpec.describe ExternalController, type: :controller do get :meeting_ended, params: { meetingID: '404', recordingmarks: 'false' } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)).to eq({}) + expect(response.parsed_body).to eq({}) end end end diff --git a/spec/controllers/meetings_controller_spec.rb b/spec/controllers/meetings_controller_spec.rb index 8b197677..48aeec11 100644 --- a/spec/controllers/meetings_controller_spec.rb +++ b/spec/controllers/meetings_controller_spec.rb @@ -48,7 +48,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :start, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['data']).to eq('JOIN_URL') + expect(response.parsed_body['data']).to eq('JOIN_URL') end it 'cannot make call to MeetingStarter service for another room' do @@ -81,7 +81,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :start, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['data']).to eq('JOIN_URL') + expect(response.parsed_body['data']).to eq('JOIN_URL') end it 'returns an error if the user is not logged in' do @@ -104,7 +104,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :start, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['data']).to eq('JOIN_URL') + expect(response.parsed_body['data']).to eq('JOIN_URL') end end @@ -134,7 +134,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :start, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['data']).to eq('JOIN_URL') + expect(response.parsed_body['data']).to eq('JOIN_URL') end end end @@ -146,7 +146,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :status, params: { friendly_id: test_room.friendly_id, name: user.name } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) + expect(response.parsed_body['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) end it 'returns status false if the meeting is NOT running and the user is NOT authorized to start the meeting' do @@ -156,7 +156,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :status, params: { friendly_id: test_room.friendly_id, name: user.name } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'status' => false }) + expect(response.parsed_body['data']).to eq({ 'status' => false }) end it 'joins as viewer if no access code is required nor provided' do @@ -192,7 +192,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :status, params: { friendly_id: room.friendly_id, name: user.name } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) + expect(response.parsed_body['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) end context 'user is joining a shared room' do @@ -360,7 +360,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :status, params: { friendly_id: room.friendly_id, name: user.name } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) + expect(response.parsed_body['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) end it 'doesnt start the meeting if its already running' do @@ -373,7 +373,7 @@ RSpec.describe Api::V1::MeetingsController, type: :controller do post :status, params: { friendly_id: room.friendly_id, name: user.name } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) + expect(response.parsed_body['data']).to eq({ 'joinUrl' => 'JOIN_URL', 'status' => true }) end end diff --git a/spec/controllers/recordings_controller_spec.rb b/spec/controllers/recordings_controller_spec.rb index fd8a53c3..8814aded 100644 --- a/spec/controllers/recordings_controller_spec.rb +++ b/spec/controllers/recordings_controller_spec.rb @@ -34,7 +34,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do get :index expect(response).to have_http_status(:ok) - response_recording_ids = JSON.parse(response.body)['data'].pluck('id') + response_recording_ids = response.parsed_body['data'].pluck('id') expect(response_recording_ids).to match_array(recordings.pluck(:id)) end @@ -43,7 +43,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do get :index expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to be_empty + expect(response.parsed_body['data']).to be_empty end it 'returns the recordings according to the query' do @@ -56,7 +56,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do create_list(:recording, 10) get :index, params: { search: 'greenlight' } - response_recording_ids = JSON.parse(response.body)['data'].pluck('id') + response_recording_ids = response.parsed_body['data'].pluck('id') expect(response_recording_ids).to match_array(recordings.pluck(:id)) end @@ -70,7 +70,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do create_list(:recording, 10) get :index, params: { search: 'presentation' } - response_recording_ids = JSON.parse(response.body)['data'].pluck('id') + response_recording_ids = response.parsed_body['data'].pluck('id') expect(response_recording_ids).to match_array(recordings.pluck(:id)) end @@ -84,7 +84,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do create_list(:recording, 10) get :index, params: { search: 'unpublished' } - response_recording_ids = JSON.parse(response.body)['data'].pluck('id') + response_recording_ids = response.parsed_body['data'].pluck('id') expect(response_recording_ids).to match_array(recordings.pluck(:id)) end @@ -93,7 +93,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do create(:room, user:, recordings:) get :index, params: { search: '' } - response_recording_ids = JSON.parse(response.body)['data'].pluck('id') + response_recording_ids = response.parsed_body['data'].pluck('id') expect(response_recording_ids).to match_array(recordings.pluck(:id)) end @@ -108,14 +108,14 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do get :index, params: { sort: { column: 'name', direction: 'DESC' } } expect(response).to have_http_status(:ok) # Order is important match_array isn't adequate for this test. - expect(JSON.parse(response.body)['data'].pluck('name')).to eq(%w[C B A]) + expect(response.parsed_body['data'].pluck('name')).to eq(%w[C B A]) end it 'orders the recordings list by column and direction ASC' do get :index, params: { sort: { column: 'name', direction: 'ASC' } } expect(response).to have_http_status(:ok) # Order is important match_array isn't adequate for this test. - expect(JSON.parse(response.body)['data'].pluck('name')).to eq(%w[A B C]) + expect(response.parsed_body['data'].pluck('name')).to eq(%w[A B C]) end end end @@ -287,7 +287,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do create_list(:room, 5, user:, recordings:) get :recordings_count - expect(JSON.parse(response.body)['data']).to be(5) + expect(response.parsed_body['data']).to be(5) end end @@ -314,7 +314,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)).to match_array ['https://test.com/screenshare', 'https://test.com/video'] + expect(response.parsed_body).to match_array ['https://test.com/screenshare', 'https://test.com/video'] end context 'Single playback format' do @@ -328,7 +328,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)).to eq ['https://test.com/screenshare'] + expect(response.parsed_body).to eq ['https://test.com/screenshare'] end end end @@ -349,7 +349,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)).to match_array recording.formats.pluck(:url) + expect(response.parsed_body).to match_array recording.formats.pluck(:url) end end end @@ -370,7 +370,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id, recording_format: 'screenshare' } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq 'https://test.com/screenshare' + expect(response.parsed_body['data']).to eq 'https://test.com/screenshare' end context 'Single playback format' do @@ -384,7 +384,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id, recording_format: 'screenshare' } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq 'https://test.com/screenshare/solo' + expect(response.parsed_body['data']).to eq 'https://test.com/screenshare/solo' end end @@ -393,7 +393,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id, recording_format: '404' } expect(response).to have_http_status(:not_found) - expect(JSON.parse(response.body)['data']).to be_blank + expect(response.parsed_body['data']).to be_blank end end end @@ -416,7 +416,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id, recording_format: target_format.recording_type } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq target_format.url + expect(response.parsed_body['data']).to eq target_format.url end context 'Inexistent format' do @@ -424,7 +424,7 @@ RSpec.describe Api::V1::RecordingsController, type: :controller do post :recording_url, params: { id: recording.record_id, recording_format: '404' } expect(response).to have_http_status(:not_found) - expect(JSON.parse(response.body)['data']).to be_blank + expect(response.parsed_body['data']).to be_blank end end end diff --git a/spec/controllers/reset_password_controller_spec.rb b/spec/controllers/reset_password_controller_spec.rb index ea9c0349..c3070578 100644 --- a/spec/controllers/reset_password_controller_spec.rb +++ b/spec/controllers/reset_password_controller_spec.rb @@ -38,7 +38,7 @@ RSpec.describe Api::V1::ResetPasswordController, type: :controller do expect(ActionMailer::MailDeliveryJob).to have_been_enqueued.at(:no_wait).exactly(:once).with('UserMailer', 'reset_password_email', 'deliver_now', Hash) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to be_empty + expect(response.parsed_body['data']).to be_empty end it 'returns :bad_request for invalid params' do diff --git a/spec/controllers/room_settings_controller_spec.rb b/spec/controllers/room_settings_controller_spec.rb index 16acf00a..14674b69 100644 --- a/spec/controllers/room_settings_controller_spec.rb +++ b/spec/controllers/room_settings_controller_spec.rb @@ -42,7 +42,7 @@ RSpec.describe Api::V1::RoomSettingsController, type: :controller do get :show, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'setting' => 'value' }) + expect(response.parsed_body['data']).to eq({ 'setting' => 'value' }) end it 'returns the value for a shared user' do @@ -51,7 +51,7 @@ RSpec.describe Api::V1::RoomSettingsController, type: :controller do sign_in_user(shared_user) get :show, params: { friendly_id: room.friendly_id } - expect(JSON.parse(response.body)['data']).to eq({ 'setting' => 'value' }) + expect(response.parsed_body['data']).to eq({ 'setting' => 'value' }) end context 'AuthN' do diff --git a/spec/controllers/rooms_configurations_controller_spec.rb b/spec/controllers/rooms_configurations_controller_spec.rb index 9d38dd8c..159786c1 100644 --- a/spec/controllers/rooms_configurations_controller_spec.rb +++ b/spec/controllers/rooms_configurations_controller_spec.rb @@ -38,11 +38,11 @@ RSpec.describe Api::V1::RoomsConfigurationsController, type: :controller do get :index - expect(JSON.parse(response.body)['data']).to eq({ - 'TRUE' => 'true', - 'FALSE' => 'false', - 'OPTIONAL' => 'optional' - }) + expect(response.parsed_body['data']).to eq({ + 'TRUE' => 'true', + 'FALSE' => 'false', + 'OPTIONAL' => 'optional' + }) expect(response).to have_http_status(:ok) end end @@ -55,7 +55,7 @@ RSpec.describe Api::V1::RoomsConfigurationsController, type: :controller do it 'returns the correct configuration value' do get :show, params: { name: 'record' } - expect(JSON.parse(response.body)['data']).to eq('false') + expect(response.parsed_body['data']).to eq('false') expect(response).to have_http_status(:ok) end diff --git a/spec/controllers/rooms_controller_spec.rb b/spec/controllers/rooms_controller_spec.rb index 747ab0b8..469cbc07 100644 --- a/spec/controllers/rooms_controller_spec.rb +++ b/spec/controllers/rooms_controller_spec.rb @@ -35,14 +35,14 @@ RSpec.describe Api::V1::RoomsController, type: :controller do rooms = create_list(:room, 3, user:) + shared_rooms get :index expect(response).to have_http_status(:ok) - response_room_ids = JSON.parse(response.body)['data'].pluck('id') + response_room_ids = response.parsed_body['data'].pluck('id') expect(response_room_ids).to match_array(rooms.pluck(:id)) end it 'no rooms for current_user should return empty list' do get :index expect(response).to have_http_status(:ok) - response_room_ids = JSON.parse(response.body)['data'].pluck('id') + response_room_ids = response.parsed_body['data'].pluck('id') expect(response_room_ids).to be_empty end @@ -54,14 +54,14 @@ RSpec.describe Api::V1::RoomsController, type: :controller do create_list(:room, 2, user:) get :index, params: { search: 'room' } - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(searched_rooms.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(searched_rooms.pluck(:id)) end it 'returns all rooms when no search query was given' do create_list(:room, 5, user:) get :index, params: { search: '' } - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(user.rooms.pluck(:id)) + expect(response.parsed_body['data'].pluck('id')).to match_array(user.rooms.pluck(:id)) end end end @@ -71,13 +71,13 @@ RSpec.describe Api::V1::RoomsController, type: :controller do room = create(:room, user:) get :show, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']['id']).to eq(room.id) + expect(response.parsed_body['data']['id']).to eq(room.id) end it 'returns :not_found if the room doesnt exist' do get :show, params: { friendly_id: 'invalid_friendly_id' } expect(response).to have_http_status(:not_found) - expect(JSON.parse(response.body)['data']).to be_nil + expect(response.parsed_body['data']).to be_nil end it 'user cannot see another users room without ManageRooms permission' do @@ -99,7 +99,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do it 'allows a user who the room is shared with to view the room' do get :show, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']['id']).to eq(room.id) + expect(response.parsed_body['data']['id']).to eq(room.id) end end end @@ -129,19 +129,19 @@ RSpec.describe Api::V1::RoomsController, type: :controller do get :public_show, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']['name']).to eq(room.name) - expect(JSON.parse(response.body)['data']['require_authentication']).to be(true) - expect(JSON.parse(response.body)['data']['viewer_access_code']).to be(true) - expect(JSON.parse(response.body)['data']['moderator_access_code']).to be(false) - expect(JSON.parse(response.body)['data']['anyone_join_as_moderator']).to be(true) - expect(JSON.parse(response.body)['data']['owner_name']).to eq(user.name) - expect(JSON.parse(response.body)['data']['owner_avatar']).to be_present + expect(response.parsed_body['data']['name']).to eq(room.name) + expect(response.parsed_body['data']['require_authentication']).to be(true) + expect(response.parsed_body['data']['viewer_access_code']).to be(true) + expect(response.parsed_body['data']['moderator_access_code']).to be(false) + expect(response.parsed_body['data']['anyone_join_as_moderator']).to be(true) + expect(response.parsed_body['data']['owner_name']).to eq(user.name) + expect(response.parsed_body['data']['owner_avatar']).to be_present end it 'returns :not_found if the room doesnt exist' do get :public_show, params: { friendly_id: 'invalid_friendly_id' } expect(response).to have_http_status(:not_found) - expect(JSON.parse(response.body)['data']).to be_nil + expect(response.parsed_body['data']).to be_nil end end @@ -301,7 +301,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do recordings = create_list(:recording, 5, room: room1) create_list(:recording, 5, room: room2) get :recordings, params: { friendly_id: room1.friendly_id } - recording_ids = JSON.parse(response.body)['data'].pluck('id') + recording_ids = response.parsed_body['data'].pluck('id') expect(response).to have_http_status(:ok) expect(recording_ids).to match_array(recordings.pluck(:id)) end @@ -309,7 +309,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do it 'returns an empty array if the room has no recordings' do room1 = create(:room, user:, friendly_id: 'friendly_id_1') get :recordings, params: { friendly_id: room1.friendly_id } - recording_ids = JSON.parse(response.body)['data'].pluck('id') + recording_ids = response.parsed_body['data'].pluck('id') expect(response).to have_http_status(:ok) expect(recording_ids).to be_empty end @@ -324,7 +324,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do get :recordings, params: { friendly_id: room.friendly_id } - recording_ids = JSON.parse(response.body)['data'].pluck('id') + recording_ids = response.parsed_body['data'].pluck('id') expect(response).to have_http_status(:ok) expect(recording_ids).to match_array(recordings.pluck(:id)) end @@ -353,7 +353,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do get :public_recordings, params: { friendly_id: room.friendly_id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to match_array(expected_response) + expect(response.parsed_body['data']).to match_array(expected_response) end end @@ -370,9 +370,9 @@ RSpec.describe Api::V1::RoomsController, type: :controller do def expect_response_to_have(page:, pages:, recordings:) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recordings.pluck('id')) - expect(JSON.parse(response.body)['meta']['pages']).to eq(pages) - expect(JSON.parse(response.body)['meta']['page']).to eq(page) + expect(response.parsed_body['data'].pluck('id')).to match_array(recordings.pluck('id')) + expect(response.parsed_body['meta']['pages']).to eq(pages) + expect(response.parsed_body['meta']['page']).to eq(page) end context 'First page' do @@ -427,7 +427,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do def expect_response_to_have_ordered(recordings:) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to eq(recordings.pluck('id')) + expect(response.parsed_body['data'].pluck('id')).to eq(recordings.pluck('id')) end describe 'Sort by name' do @@ -493,7 +493,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do def expect_response_to_match(recordings:) expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data'].pluck('id')).to match_array(recordings.pluck('id')) + expect(response.parsed_body['data'].pluck('id')).to match_array(recordings.pluck('id')) end describe 'Matched by name' do @@ -539,7 +539,7 @@ RSpec.describe Api::V1::RoomsController, type: :controller do get :public_recordings, params: { friendly_id: '404' } expect(response).to have_http_status(:not_found) - expect(JSON.parse(response.body)['data']).to be_blank + expect(response.parsed_body['data']).to be_blank end end end diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 06bbabc2..e2202d26 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -64,8 +64,8 @@ RSpec.describe Api::V1::SessionsController, type: :controller do } } - expect(JSON.parse(response.body)['data']).to eq(unverified_user.id) - expect(JSON.parse(response.body)['errors']).to eq('UnverifiedUser') + expect(response.parsed_body['data']).to eq(unverified_user.id) + expect(response.parsed_body['errors']).to eq('UnverifiedUser') end it 'returns BannedUser error if the user is banned' do @@ -78,7 +78,7 @@ RSpec.describe Api::V1::SessionsController, type: :controller do } } - expect(JSON.parse(response.body)['errors']).to eq('BannedUser') + expect(response.parsed_body['errors']).to eq('BannedUser') end it 'returns Pending error if the user is banned' do @@ -91,7 +91,7 @@ RSpec.describe Api::V1::SessionsController, type: :controller do } } - expect(JSON.parse(response.body)['errors']).to eq('PendingUser') + expect(response.parsed_body['errors']).to eq('PendingUser') end it 'logs in with greenlight account before bn account' do diff --git a/spec/controllers/shared_accesses_controller_spec.rb b/spec/controllers/shared_accesses_controller_spec.rb index e48f1fce..1511f810 100644 --- a/spec/controllers/shared_accesses_controller_spec.rb +++ b/spec/controllers/shared_accesses_controller_spec.rb @@ -51,7 +51,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do room.shared_users = shared_users get :show, params: { friendly_id: room.friendly_id, search: '' } - shared_user_ids = JSON.parse(response.body)['data'].pluck('id') + shared_user_ids = response.parsed_body['data'].pluck('id') expect(shared_user_ids).to match_array(shared_users.pluck(:id)) expect(shared_user_ids).not_to include(unshared_users.pluck(:id)) end @@ -62,7 +62,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do room.shared_users << searched_users get :show, params: { friendly_id: room.friendly_id, search: 'John Doe' } - response_users_ids = JSON.parse(response.body)['data'].pluck('id') + response_users_ids = response.parsed_body['data'].pluck('id') expect(response_users_ids).to match_array(searched_users.pluck(:id)) end @@ -74,7 +74,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do room.shared_users = shared_users + [shared_user] get :show, params: { friendly_id: room.friendly_id, search: '' } - shared_user_ids = JSON.parse(response.body)['data'].pluck('id') + shared_user_ids = response.parsed_body['data'].pluck('id') expect(shared_user_ids).to match_array((shared_users + [shared_user]).pluck(:id)) end end @@ -85,7 +85,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do shareable_users << user get :shareable_users, params: { friendly_id: room.friendly_id, search: '' } - expect(JSON.parse(response.body)['data']).to be_empty + expect(response.parsed_body['data']).to be_empty end it 'does not return any users if the search params has less than 3 characters' do @@ -93,7 +93,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do shareable_users << user get :shareable_users, params: { friendly_id: room.friendly_id, search: 'Jo' } - expect(JSON.parse(response.body)['data']).to be_empty + expect(response.parsed_body['data']).to be_empty end it 'returns the users that the room can be shared to' do @@ -101,7 +101,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do shareable_users = create_list(:user, 5, name: 'John Doe') get :shareable_users, params: { friendly_id: room.friendly_id, search: 'John Doe' } - response_users_ids = JSON.parse(response.body)['data'].pluck('id') + response_users_ids = response.parsed_body['data'].pluck('id') expect(response_users_ids).to match_array(shareable_users.pluck(:id)) end @@ -110,7 +110,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do shareable_users = create_list(:user, 5, name: 'Jane Doe') get :shareable_users, params: { friendly_id: room.friendly_id, search: 'Jane Doe' } - response_users_ids = JSON.parse(response.body)['data'].pluck('id') + response_users_ids = response.parsed_body['data'].pluck('id') expect(response_users_ids).to match_array(shareable_users.pluck(:id)) end @@ -120,7 +120,7 @@ RSpec.describe Api::V1::SharedAccessesController, type: :controller do create(:user, :without_shared_list_permission, name: 'John Doe') get :shareable_users, params: { friendly_id: room.friendly_id, search: 'John Doe' } - response_users_ids = JSON.parse(response.body)['data'].pluck('id') + response_users_ids = response.parsed_body['data'].pluck('id') expect(response_users_ids).to match_array([]) end end diff --git a/spec/controllers/site_settings_controller_spec.rb b/spec/controllers/site_settings_controller_spec.rb index 8b2faf14..b8bd10d9 100644 --- a/spec/controllers/site_settings_controller_spec.rb +++ b/spec/controllers/site_settings_controller_spec.rb @@ -34,7 +34,7 @@ RSpec.describe Api::V1::SiteSettingsController, type: :controller do get :index, params: { names: 'SettingName' } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq('false') + expect(response.parsed_body['data']).to eq('false') end it 'calls SettingGetter and returns multiple values' do @@ -44,7 +44,7 @@ RSpec.describe Api::V1::SiteSettingsController, type: :controller do get :index, params: { names: %w[Uno Dos Tres] } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']).to eq({ 'Uno' => 1, 'Dos' => 2, 'Tres' => 3 }) + expect(response.parsed_body['data']).to eq({ 'Uno' => 1, 'Dos' => 2, 'Tres' => 3 }) end it 'returns forbidden if trying to access a forbidden setting' do diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 7249637a..7c61036e 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -58,7 +58,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect { post :create, params: user_params }.to change(User, :count).from(0).to(1) expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end it 'assigns the User role to the user' do @@ -170,7 +170,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect(ActionMailer::MailDeliveryJob).not_to have_been_enqueued expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)['errors']).to eq(Rails.configuration.custom_error_msgs[:record_invalid]) + expect(response.parsed_body['errors']).to eq(Rails.configuration.custom_error_msgs[:record_invalid]) end context 'Duplicated email' do @@ -184,7 +184,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect(ActionMailer::MailDeliveryJob).not_to have_been_enqueued expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)['errors']).to eq(Rails.configuration.custom_error_msgs[:email_exists]) + expect(response.parsed_body['errors']).to eq(Rails.configuration.custom_error_msgs[:email_exists]) end end end @@ -209,7 +209,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect(User.find_by(email: user_params[:email]).role).to eq(autobots) expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end end @@ -228,7 +228,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect { post :create, params: user_params }.to change(User, :count).from(0).to(1) expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end it 'deletes an invitation after using it' do @@ -244,14 +244,14 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect { post :create, params: user_params }.to change(User, :count).by(1) expect(response).to have_http_status(:created) - expect(JSON.parse(response.body)['errors']).to be_nil + expect(response.parsed_body['errors']).to be_nil end it 'returns an InviteInvalid error if no invite is passed' do expect { post :create, params: user_params }.not_to change(User, :count) expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)['errors']).to eq(Rails.configuration.custom_error_msgs[:invite_token_invalid]) + expect(response.parsed_body['errors']).to eq(Rails.configuration.custom_error_msgs[:invite_token_invalid]) end it 'returns an InviteInvalid error if the token is wrong' do @@ -259,7 +259,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect { post :create, params: user_params }.not_to change(User, :count) expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)['errors']).to eq(Rails.configuration.custom_error_msgs[:invite_token_invalid]) + expect(response.parsed_body['errors']).to eq(Rails.configuration.custom_error_msgs[:invite_token_invalid]) end end @@ -287,8 +287,8 @@ RSpec.describe Api::V1::UsersController, type: :controller do expect { post :create, params: user_params }.not_to change(User, :count) expect(response).to have_http_status(:forbidden) - expect(JSON.parse(response.body)['data']).to be_blank - expect(JSON.parse(response.body)['errors']).not_to be_nil + expect(response.parsed_body['data']).to be_blank + expect(response.parsed_body['errors']).not_to be_nil end end end @@ -301,7 +301,7 @@ RSpec.describe Api::V1::UsersController, type: :controller do it 'returns a user if id is valid' do get :show, params: { id: user.id } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)['data']['id']).to eq(user.id) + expect(response.parsed_body['data']['id']).to eq(user.id) end end -- GitLab