Spaces:
Sleeping
Sleeping
| // _ _ | |
| // __ _____ __ ___ ___ __ _| |_ ___ | |
| // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ | |
| // \ V V / __/ (_| |\ V /| | (_| | || __/ | |
| // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| | |
| // | |
| // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. | |
| // | |
| // CONTACT: hello@weaviate.io | |
| // | |
| package config | |
| import ( | |
| "fmt" | |
| "testing" | |
| "github.com/stretchr/testify/assert" | |
| ) | |
| func TestConfig_Authentication(t *testing.T) { | |
| t.Run("no auth selected", func(t *testing.T) { | |
| auth := Authentication{} | |
| expected := fmt.Errorf("no authentication scheme configured, you must select at least one") | |
| err := auth.Validate() | |
| assert.Equal(t, expected, err) | |
| }) | |
| t.Run("only anonymous selected", func(t *testing.T) { | |
| auth := Authentication{ | |
| AnonymousAccess: AnonymousAccess{ | |
| Enabled: true, | |
| }, | |
| } | |
| err := auth.Validate() | |
| assert.Nil(t, err, "should not error") | |
| }) | |
| t.Run("only oidc selected", func(t *testing.T) { | |
| auth := Authentication{ | |
| OIDC: OIDC{ | |
| Enabled: true, | |
| }, | |
| } | |
| err := auth.Validate() | |
| assert.Nil(t, err, "should not error") | |
| }) | |
| t.Run("oidc and anonymous enabled together", func(t *testing.T) { | |
| // this might seem counter-intuitive at first, but this makes a lot of | |
| // sense when you consider the authorization strategies: for example we | |
| // could allow reads for everyone, but only explicitly authenticated users | |
| // may write | |
| auth := Authentication{ | |
| OIDC: OIDC{ | |
| Enabled: true, | |
| }, | |
| AnonymousAccess: AnonymousAccess{ | |
| Enabled: true, | |
| }, | |
| } | |
| err := auth.Validate() | |
| assert.Nil(t, err, "should not error") | |
| }) | |
| } | |