123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- require 'rails_helper'
- require 'lib/auth/backend_examples'
- require 'auth/ldap'
- RSpec.describe ::Auth::Ldap do
- let(:user) { create(:user) }
- let(:password) { 'somepassword' }
- let(:instance) { described_class.new({ adapter: described_class.name }) }
- describe '#valid?' do
- it_behaves_like 'Auth backend'
- it 'authenticates users' do
- allow(Setting).to receive(:get)
- allow(Setting).to receive(:get).with('ldap_integration').and_return(true)
- ldap_user = double(valid?: true)
- allow(::Ldap::User).to receive(:new).and_return(ldap_user)
- result = instance.valid?(user, password)
- expect(result).to be true
- end
- it 'authenticates via configurable user attributes' do
- allow(Setting).to receive(:get)
- allow(Setting).to receive(:get).with('ldap_integration').and_return(true)
- instance = described_class.new(
- adapter: described_class.name,
- login_attributes: %w[firstname],
- )
- ldap_user = double
- allow(ldap_user).to receive(:valid?).with(user.firstname, password).and_return(true)
- allow(::Ldap::User).to receive(:new).and_return(ldap_user)
- result = instance.valid?(user, password)
- expect(result).to be true
- end
- context 'invalid' do
- it "doesn't authenticate if 'ldap_integration' Setting is disabled" do
- allow(Setting).to receive(:get)
- allow(Setting).to receive(:get).with('ldap_integration').and_return(false)
- result = instance.valid?(user, password)
- expect(result).to be false
- end
- it "doesn't authenticate if ldap says 'nope'" do
- allow(Setting).to receive(:get)
- allow(Setting).to receive(:get).with('ldap_integration').and_return(true)
- ldap_user = double(valid?: false)
- allow(::Ldap::User).to receive(:new).and_return(ldap_user)
- result = instance.valid?(user, password)
- expect(result).to be false
- end
- end
- end
- end
|