diff --git a/lib/gitlab/ldap/config.rb b/lib/gitlab/ldap/config.rb index af0d743f4d..697b66dcda 100644 --- a/lib/gitlab/ldap/config.rb +++ b/lib/gitlab/ldap/config.rb @@ -17,8 +17,8 @@ module Gitlab end def initialize(provider) - raise "Unknown provider (#{provider}). Available providers: #{self.class.providers}" @provider = provider + invalid_provider unless valid_provider? @options = config_for(provider) end @@ -89,6 +89,14 @@ module Gitlab end end + def valid_provider? + self.class.providers.include?(provider) + end + + def invalid_provider + raise "Unknown provider (#{provider}). Available providers: #{self.class.providers}" + end + def auth_options { auth: { diff --git a/spec/lib/gitlab/ldap/config_spec.rb b/spec/lib/gitlab/ldap/config_spec.rb index a01166b264..76cc7f95c4 100644 --- a/spec/lib/gitlab/ldap/config_spec.rb +++ b/spec/lib/gitlab/ldap/config_spec.rb @@ -12,5 +12,9 @@ describe Gitlab::LDAP::Config do it "works" do expect(config).to be_a described_class end + + it "raises an error if a unknow provider is used" do + expect{ Gitlab::LDAP::Config.new 'unknown' }.to raise_error + end end end \ No newline at end of file