mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 12:22:15 +08:00
64 lines
2.1 KiB
Go
64 lines
2.1 KiB
Go
package kerberos
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGetKerberosSettings(t *testing.T) {
|
|
t.Run("Should correctly parse settings", func(t *testing.T) {
|
|
settings := backend.DataSourceInstanceSettings{
|
|
JSONData: []byte(`{"keytabFilePath":"keytab","credentialCache":"cache","credentialCacheLookupFile":"lookup","configFilePath":"config","UDPConnectionLimit":1,"enableDNSLookupKDC":"dns"}`),
|
|
}
|
|
|
|
kerberosSettings, err := GetKerberosSettings(settings)
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, "keytab", kerberosSettings.KeytabFilePath)
|
|
require.Equal(t, "cache", kerberosSettings.CredentialCache)
|
|
require.Equal(t, "lookup", kerberosSettings.CredentialCacheLookupFile)
|
|
require.Equal(t, "config", kerberosSettings.ConfigFilePath)
|
|
require.Equal(t, 1, kerberosSettings.UDPConnectionLimit)
|
|
require.Equal(t, "dns", kerberosSettings.EnableDNSLookupKDC)
|
|
})
|
|
|
|
t.Run("Should correctly parse legacy UDPConnectionLimit", func(t *testing.T) {
|
|
settings := backend.DataSourceInstanceSettings{
|
|
JSONData: []byte(`{"UDPConnectionLimit":"0"}`),
|
|
}
|
|
|
|
kerberosSettings, err := GetKerberosSettings(settings)
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, 0, kerberosSettings.UDPConnectionLimit)
|
|
})
|
|
|
|
t.Run("Should return defaults", func(t *testing.T) {
|
|
settings := backend.DataSourceInstanceSettings{
|
|
JSONData: []byte(`{}`),
|
|
}
|
|
|
|
kerberosSettings, err := GetKerberosSettings(settings)
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, "", kerberosSettings.KeytabFilePath)
|
|
require.Equal(t, "", kerberosSettings.CredentialCache)
|
|
require.Equal(t, "", kerberosSettings.CredentialCacheLookupFile)
|
|
require.Equal(t, "", kerberosSettings.ConfigFilePath)
|
|
require.Equal(t, 1, kerberosSettings.UDPConnectionLimit)
|
|
require.Equal(t, "", kerberosSettings.EnableDNSLookupKDC)
|
|
})
|
|
|
|
t.Run("Will error if legacy UDPConnectionLimit can't be converted to number", func(t *testing.T) {
|
|
settings := backend.DataSourceInstanceSettings{
|
|
JSONData: []byte(`{"UDPConnectionLimit":"test"}`),
|
|
}
|
|
|
|
_, err := GetKerberosSettings(settings)
|
|
|
|
require.Error(t, err)
|
|
})
|
|
}
|