package suites import ( "os" "time" ) var twoFactorSuiteName = "TwoFactor" func init() { _ = os.MkdirAll("/tmp/authelia/TwoFactorSuite/", 0700) _ = os.WriteFile("/tmp/authelia/TwoFactorSuite/jwt", []byte("very_important_secret"), 0600) //nolint:gosec _ = os.WriteFile("/tmp/authelia/TwoFactorSuite/session", []byte("unsecure_session_secret"), 0600) //nolint:gosec dockerEnvironment := NewDockerEnvironment([]string{ "internal/suites/compose.yml", "internal/suites/TwoFactor/compose.yml", "internal/suites/example/compose/authelia/compose.backend.{}.yml", "internal/suites/example/compose/authelia/compose.frontend.{}.yml", "internal/suites/example/compose/nginx/backend/compose.yml", "internal/suites/example/compose/nginx/portal/compose.yml", "internal/suites/example/compose/smtp/compose.yml", "internal/suites/example/compose/smtp/compose.auth.yml", }) setup := func(suitePath string) (err error) { if err = dockerEnvironment.Up(); err != nil { return err } if err = waitUntilAutheliaIsReady(dockerEnvironment, twoFactorSuiteName); err != nil { return err } return updateDevEnvFileForDomain(BaseDomain, true) } displayAutheliaLogs := func() error { return dockerEnvironment.PrintLogs("authelia-backend", "authelia-frontend") } teardown := func(suitePath string) error { err := dockerEnvironment.Down() _ = os.Remove("/tmp/db.sqlite3") return err } GlobalRegistry.Register(twoFactorSuiteName, Suite{ SetUp: setup, SetUpTimeout: 5 * time.Minute, OnError: displayAutheliaLogs, OnSetupTimeout: displayAutheliaLogs, TearDown: teardown, TestTimeout: 4 * time.Minute, TearDownTimeout: 2 * time.Minute, Description: `This suite is used to test Authelia in a two factor configuration with in-memory sessions and a local sqlite db stored on disk`, }) }