Commit 18bc6810 by Emil Hessman Committed by GitHub

Chore: Rewrite ldap login test to standard library (#29998)

* Chore: Rewrite ldap login test to standard library

* Preserve original ldap enabled setting after test
parent 504e4f23
......@@ -8,65 +8,41 @@ import (
"github.com/grafana/grafana/pkg/services/ldap"
"github.com/grafana/grafana/pkg/services/multildap"
"github.com/grafana/grafana/pkg/setting"
. "github.com/smartystreets/goconvey/convey"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
var errTest = errors.New("test error")
func TestLDAPLogin(t *testing.T) {
Convey("Login using ldap", t, func() {
Convey("Given ldap enabled and no server configured", func() {
setting.LDAPEnabled = true
func TestLoginUsingLDAP(t *testing.T) {
LDAPLoginScenario(t, "When LDAP enabled and no server configured", func(sc *LDAPLoginScenarioContext) {
setting.LDAPEnabled = true
LDAPLoginScenario("When login", func(sc *LDAPLoginScenarioContext) {
sc.withLoginResult(false)
getLDAPConfig = func(*setting.Cfg) (*ldap.Config, error) {
config := &ldap.Config{
Servers: []*ldap.ServerConfig{},
}
return config, nil
}
enabled, err := loginUsingLDAP(sc.loginUserQuery)
Convey("it should return true", func() {
So(enabled, ShouldBeTrue)
})
Convey("it should return no LDAP servers error", func() {
So(err, ShouldEqual, errTest)
})
sc.withLoginResult(false)
getLDAPConfig = func(*setting.Cfg) (*ldap.Config, error) {
config := &ldap.Config{
Servers: []*ldap.ServerConfig{},
}
Convey("it should not call ldap login", func() {
So(sc.LDAPAuthenticatorMock.loginCalled, ShouldBeTrue)
})
})
})
return config, nil
}
Convey("Given ldap disabled", func() {
setting.LDAPEnabled = false
enabled, err := loginUsingLDAP(sc.loginUserQuery)
require.EqualError(t, err, errTest.Error())
LDAPLoginScenario("When login", func(sc *LDAPLoginScenarioContext) {
sc.withLoginResult(false)
enabled, err := loginUsingLDAP(&models.LoginUserQuery{
Username: "user",
Password: "pwd",
})
assert.True(t, enabled)
assert.True(t, sc.LDAPAuthenticatorMock.loginCalled)
})
Convey("it should return false", func() {
So(enabled, ShouldBeFalse)
})
LDAPLoginScenario(t, "When LDAP disabled", func(sc *LDAPLoginScenarioContext) {
setting.LDAPEnabled = false
Convey("it should not return error", func() {
So(err, ShouldBeNil)
})
sc.withLoginResult(false)
enabled, err := loginUsingLDAP(sc.loginUserQuery)
require.NoError(t, err)
Convey("it should not call ldap login", func() {
So(sc.LDAPAuthenticatorMock.loginCalled, ShouldBeFalse)
})
})
})
assert.False(t, enabled)
assert.False(t, sc.LDAPAuthenticatorMock.loginCalled)
})
}
......@@ -137,8 +113,10 @@ type LDAPLoginScenarioContext struct {
type LDAPLoginScenarioFunc func(c *LDAPLoginScenarioContext)
func LDAPLoginScenario(desc string, fn LDAPLoginScenarioFunc) {
Convey(desc, func() {
func LDAPLoginScenario(t *testing.T, desc string, fn LDAPLoginScenarioFunc) {
t.Helper()
t.Run(desc, func(t *testing.T) {
mock := &mockAuth{}
sc := &LDAPLoginScenarioContext{
......@@ -152,10 +130,12 @@ func LDAPLoginScenario(desc string, fn LDAPLoginScenarioFunc) {
origNewLDAP := newLDAP
origGetLDAPConfig := getLDAPConfig
defer func() {
origLDAPEnabled := setting.LDAPEnabled
t.Cleanup(func() {
newLDAP = origNewLDAP
getLDAPConfig = origGetLDAPConfig
}()
setting.LDAPEnabled = origLDAPEnabled
})
getLDAPConfig = func(*setting.Cfg) (*ldap.Config, error) {
config := &ldap.Config{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment