From 5dd89a80d5ee119d45d82ecaee37325a5ceb7ddd Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 25 Sep 2024 14:33:36 +0100 Subject: [PATCH] Add tests for non staging environement --- spec/models/user_spec.rb | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 53d937554..beb3d589e 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -244,6 +244,47 @@ RSpec.describe User, type: :model do end end + context "when the user is in non staging environment" do + before do + allow(Rails.env).to receive(:staging?).and_return(false) + end + + context "and the user is in the staging role update email allowlist" do + before do + allow(Rails.application.credentials).to receive(:[]).with(:staging_role_update_email_allowlist).and_return(["example.com"]) + end + + context "when the user is a data provider" do + it "cannot assign roles" do + expect(user.assignable_roles).to eq({}) + end + end + + context "when the user is a data coordinator" do + let(:user) { create(:user, :data_coordinator) } + + it "can assign all roles except support" do + expect(user.assignable_roles).to eq({ + data_provider: 1, + data_coordinator: 2, + }) + end + end + + context "when the user is a Support user" do + let(:user) { create(:user, :support) } + + it "can assign all roles" do + expect(user.assignable_roles).to eq({ + data_provider: 1, + data_coordinator: 2, + support: 99, + }) + end + end + end + end + context "when the user is in staging environment" do before do allow(Rails.env).to receive(:staging?).and_return(true)