From 9e03f940857eb01ab780d3951705b70a3cfe799c Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Thu, 12 Dec 2024 15:25:54 +0100 Subject: [PATCH] [#10952] Tests --- .../users/sessions_controller_spec.rb | 10 ++++++++ spec/services/agent_connect_service_spec.rb | 24 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb index 42c4e0f58..5ed883879 100644 --- a/spec/controllers/users/sessions_controller_spec.rb +++ b/spec/controllers/users/sessions_controller_spec.rb @@ -96,6 +96,16 @@ describe Users::SessionsController, type: :controller do expect(controller.current_user).to be(nil) end end + + context 'when email domain is in mandatory list' do + let(:email) { 'user@beta.gouv.fr' } + it 'redirects to agent connect with force parameter' do + expect(AgentConnectService).to receive(:enabled?).and_return(true) + subject + expect(response).to redirect_to(agent_connect_path(force_agent_connect: true)) + expect(flash[:alert]).to eq("La connexion des agents passe à présent systématiquement par AgentConnect") + end + end end describe '#destroy' do diff --git a/spec/services/agent_connect_service_spec.rb b/spec/services/agent_connect_service_spec.rb index f0aa30db7..5884eee11 100644 --- a/spec/services/agent_connect_service_spec.rb +++ b/spec/services/agent_connect_service_spec.rb @@ -16,4 +16,28 @@ describe AgentConnectService do expect(subject).to eq("https://agent-connect.fr/logout?id_token_hint=id_token&post_logout_redirect_uri=http%3A%2F%2Ftest.host%2Flogout") end end + + describe '.email_domain_is_in_mandatory_list?' do + subject { described_class.email_domain_is_in_mandatory_list?(email) } + + context 'when email domain is beta.gouv.fr' do + let(:email) { 'user@beta.gouv.fr' } + it { is_expected.to be true } + end + + context 'when email domain is modernisation.gouv.fr' do + let(:email) { 'user@modernisation.gouv.fr' } + it { is_expected.to be true } + end + + context 'when email domain is not in the mandatory list' do + let(:email) { 'user@example.com' } + it { is_expected.to be false } + end + + context 'when email contains whitespace' do + let(:email) { ' user@beta.gouv.fr ' } + it { is_expected.to be true } + end + end end