@ -347,7 +347,7 @@ func TestService_GetForProvider(t *testing.T) {
t . Run ( tc . name , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , true , false , true , true )
env := setupTestEnv ( t , true , false , true )
if tc . setup != nil {
tc . setup ( env )
}
@ -514,7 +514,7 @@ func TestService_GetForProviderWithRedactedSecrets(t *testing.T) {
t . Run ( tc . name , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , true )
env := setupTestEnv ( t , false , false , true )
if tc . setup != nil {
tc . setup ( env )
}
@ -665,7 +665,7 @@ func TestService_List(t *testing.T) {
t . Run ( tc . name , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
if tc . setup != nil {
tc . setup ( env )
}
@ -967,7 +967,7 @@ func TestService_ListWithRedactedSecrets(t *testing.T) {
t . Run ( tc . name , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
if tc . setup != nil {
tc . setup ( env )
}
@ -991,7 +991,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "successfully upsert SSO settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := models . SSOSettings {
@ -1054,7 +1054,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "successfully upsert SSO settings for LDAP" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , true )
env := setupTestEnv ( t , false , false , true )
provider := social . LDAPProviderName
settings := models . SSOSettings {
@ -1124,7 +1124,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if provider is not configurable" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . GrafanaComProviderName
settings := & models . SSOSettings {
@ -1147,7 +1147,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if provider was not found in reloadables" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := & models . SSOSettings {
@ -1171,7 +1171,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if validation fails" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := models . SSOSettings {
@ -1195,7 +1195,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if a fallback strategy is not available for the provider" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
settings := & models . SSOSettings {
Provider : social . AzureADProviderName ,
@ -1216,7 +1216,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if a secret does not have the type string" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . OktaProviderName
settings := models . SSOSettings {
@ -1239,7 +1239,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if secrets encryption failed" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . OktaProviderName
settings := models . SSOSettings {
@ -1264,7 +1264,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "should not update the current secret if the secret has not been updated" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := models . SSOSettings {
@ -1308,7 +1308,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "run validation with all new and current secrets available in settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := models . SSOSettings {
@ -1361,7 +1361,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "returns error if store failed to upsert settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := models . SSOSettings {
@ -1393,7 +1393,7 @@ func TestService_Upsert(t *testing.T) {
t . Run ( "successfully upsert SSO settings if reload fails" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
settings := models . SSOSettings {
@ -1426,7 +1426,7 @@ func TestService_Delete(t *testing.T) {
t . Run ( "successfully delete SSO settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
var wg sync . WaitGroup
wg . Add ( 1 )
@ -1464,7 +1464,7 @@ func TestService_Delete(t *testing.T) {
t . Run ( "return error if SSO setting was not found for the specified provider" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
reloadable := ssosettingstests . NewMockReloadable ( t )
@ -1480,7 +1480,7 @@ func TestService_Delete(t *testing.T) {
t . Run ( "should not delete the SSO settings if the provider is not configurable" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
env . cfg . SSOSettingsConfigurableProviders = map [ string ] bool { social . AzureADProviderName : true }
provider := social . GrafanaComProviderName
@ -1493,7 +1493,7 @@ func TestService_Delete(t *testing.T) {
t . Run ( "return error when store fails to delete the SSO settings for the specified provider" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
env . store . ExpectedError = errors . New ( "delete sso settings failed" )
@ -1506,7 +1506,7 @@ func TestService_Delete(t *testing.T) {
t . Run ( "return successfully when the deletion was successful but reloading the settings fail" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := social . AzureADProviderName
reloadable := ssosettingstests . NewMockReloadable ( t )
@ -1523,7 +1523,7 @@ func TestService_Delete(t *testing.T) {
t . Run ( "should delete SAML SettingsProvider while deleting SAML SSO Settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , true , true , true , false )
env := setupTestEnv ( t , true , true , false )
mockProvider := & settingtest . MockProvider { }
mockProvider . On ( "Current" , mock . Anything ) . Return ( setting . SettingsBag {
@ -1598,7 +1598,7 @@ func TestService_DoReload(t *testing.T) {
t . Run ( "successfully reload settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
settingsList := [ ] * models . SSOSettings {
{
@ -1638,7 +1638,7 @@ func TestService_DoReload(t *testing.T) {
t . Run ( "successfully reload settings when some providers have empty settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
settingsList := [ ] * models . SSOSettings {
{
@ -1668,7 +1668,7 @@ func TestService_DoReload(t *testing.T) {
t . Run ( "failed fetching the SSO settings" , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
provider := "github"
@ -1798,7 +1798,7 @@ func TestService_decryptSecrets(t *testing.T) {
t . Run ( tc . name , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , false , false , false , false )
env := setupTestEnv ( t , false , false , false )
if tc . setup != nil {
tc . setup ( env )
@ -1823,7 +1823,6 @@ func Test_ProviderService(t *testing.T) {
tests := [ ] struct {
name string
isLicenseEnabled bool
samlEnabled bool
expectedProvidersList [ ] string
strategiesLength int
} {
@ -1841,24 +1840,9 @@ func Test_ProviderService(t *testing.T) {
} ,
strategiesLength : 2 ,
} ,
{
name : "should return all fallback strategies and it should return all OAuth providers but not SAML because the licensing feature is enabled but the configurable provider is not setup" ,
isLicenseEnabled : true ,
expectedProvidersList : [ ] string {
"github" ,
"gitlab" ,
"google" ,
"generic_oauth" ,
"grafana_com" ,
"azuread" ,
"okta" ,
} ,
strategiesLength : 3 ,
} ,
{
name : "should return all fallback strategies and it should return all OAuth providers and SAML because the licensing feature is enabled and the provider is setup" ,
isLicenseEnabled : true ,
samlEnabled : true ,
expectedProvidersList : [ ] string {
"github" ,
"gitlab" ,
@ -1877,7 +1861,7 @@ func Test_ProviderService(t *testing.T) {
t . Run ( tc . name , func ( t * testing . T ) {
t . Parallel ( )
env := setupTestEnv ( t , tc . isLicenseEnabled , true , tc . samlEnabled , false )
env := setupTestEnv ( t , tc . isLicenseEnabled , true , false )
require . Equal ( t , tc . expectedProvidersList , env . service . providersList )
require . Equal ( t , tc . strategiesLength , len ( env . service . fbStrategies ) )
@ -1885,7 +1869,7 @@ func Test_ProviderService(t *testing.T) {
}
}
func setupTestEnv ( t * testing . T , isLicensingEnabled , keepFallbackStratergies , samlEnabled bool , ldapEnabled bool ) testEnv {
func setupTestEnv ( t * testing . T , isLicensingEnabled , keepFallbackStratergies bool , ldapEnabled bool ) testEnv {
t . Helper ( )
store := ssosettingstests . NewFakeStore ( )
@ -1916,9 +1900,6 @@ func setupTestEnv(t *testing.T, isLicensingEnabled, keepFallbackStratergies, sam
licensing . On ( "FeatureEnabled" , "saml" ) . Return ( isLicensingEnabled )
features := make ( [ ] any , 0 )
if samlEnabled {
features = append ( features , featuremgmt . FlagSsoSettingsSAML )
}
if ldapEnabled {
features = append ( features , featuremgmt . FlagSsoSettingsLDAP )
}