package handlers import ( "testing" "github.com/stretchr/testify/suite" "github.com/authelia/authelia/internal/configuration/schema" "github.com/authelia/authelia/internal/mocks" "github.com/authelia/authelia/internal/session" ) type ConfigurationSuite struct { suite.Suite mock *mocks.MockAutheliaCtx } func (s *ConfigurationSuite) SetupTest() { s.mock = mocks.NewMockAutheliaCtx(s.T()) } func (s *ConfigurationSuite) TearDownTest() { s.mock.Close() } func (s *ConfigurationSuite) TestShouldReturnConfiguredGATrackingID() { GATrackingID := "ABC" s.mock.Ctx.Configuration.GoogleAnalyticsTrackingID = GATrackingID s.mock.Ctx.Configuration.Session.RememberMeDuration = schema.DefaultSessionConfiguration.RememberMeDuration expectedBody := ConfigurationBody{ GoogleAnalyticsTrackingID: GATrackingID, RememberMe: true, ResetPassword: true, } ConfigurationGet(s.mock.Ctx) s.mock.Assert200OK(s.T(), expectedBody) } func (s *ConfigurationSuite) TestShouldDisableRememberMe() { GATrackingID := "ABC" s.mock.Ctx.Configuration.GoogleAnalyticsTrackingID = GATrackingID s.mock.Ctx.Configuration.Session.RememberMeDuration = "0" s.mock.Ctx.Providers.SessionProvider = session.NewProvider( s.mock.Ctx.Configuration.Session) expectedBody := ConfigurationBody{ GoogleAnalyticsTrackingID: GATrackingID, RememberMe: false, ResetPassword: true, } ConfigurationGet(s.mock.Ctx) s.mock.Assert200OK(s.T(), expectedBody) } func (s *ConfigurationSuite) TestShouldDisableResetPassword() { GATrackingID := "ABC" s.mock.Ctx.Configuration.GoogleAnalyticsTrackingID = GATrackingID s.mock.Ctx.Configuration.AuthenticationBackend.DisableResetPassword = true expectedBody := ConfigurationBody{ GoogleAnalyticsTrackingID: GATrackingID, RememberMe: true, ResetPassword: false, } ConfigurationGet(s.mock.Ctx) s.mock.Assert200OK(s.T(), expectedBody) } func TestRunHandlerConfigurationSuite(t *testing.T) { s := new(ConfigurationSuite) suite.Run(t, s) }