53 lines
1.4 KiB
Ruby
53 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
describe SamlIdpController do
|
||
before do
|
||
allow_any_instance_of(SamlIdpController).to receive(:validate_saml_request).and_return(valid_saml_request)
|
||
end
|
||
|
||
describe '#new' do
|
||
let(:action) { get :new }
|
||
|
||
context 'with invalid saml request' do
|
||
let(:valid_saml_request) { false }
|
||
it { expect(action).to have_http_status(:forbidden) }
|
||
end
|
||
|
||
context 'with valid saml request' do
|
||
let(:valid_saml_request) { true }
|
||
|
||
it { expect(action).to have_http_status(:ok) }
|
||
end
|
||
end
|
||
describe '#create' do
|
||
let(:action) { post :create }
|
||
|
||
context 'with invalid saml request' do
|
||
let(:valid_saml_request) { false }
|
||
it { expect(action).to have_http_status(:forbidden) }
|
||
end
|
||
|
||
context 'with valid saml request' do
|
||
let(:valid_saml_request) { true }
|
||
|
||
context 'without superadmin connected' do
|
||
it { expect(action).to redirect_to root_path }
|
||
|
||
it "display alert" do
|
||
action
|
||
expect(flash[:alert]).to eq("Vous n’êtes pas autorisé à accéder à ce service.")
|
||
end
|
||
end
|
||
|
||
context 'with superadmin connected' do
|
||
let(:superadmin) { create(:super_admin) }
|
||
before { sign_in superadmin }
|
||
|
||
it 'encode saml response' do
|
||
expect(subject).to receive(:idp_make_saml_response).with(superadmin)
|
||
action
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|