58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/supabase/auth/internal/conf"
|
|
"github.com/supabase/auth/internal/crypto"
|
|
"github.com/supabase/auth/internal/storage"
|
|
"github.com/supabase/auth/internal/storage/test"
|
|
)
|
|
|
|
const (
|
|
apiTestVersion = "1"
|
|
apiTestConfig = "../../hack/test.env"
|
|
)
|
|
|
|
func init() {
|
|
crypto.PasswordHashCost = crypto.QuickHashCost
|
|
}
|
|
|
|
// setupAPIForTest creates a new API to run tests with.
|
|
// Using this function allows us to keep track of the database connection
|
|
// and cleaning up data between tests.
|
|
func setupAPIForTest() (*API, *conf.GlobalConfiguration, error) {
|
|
return setupAPIForTestWithCallback(nil)
|
|
}
|
|
|
|
func setupAPIForTestWithCallback(cb func(*conf.GlobalConfiguration, *storage.Connection)) (*API, *conf.GlobalConfiguration, error) {
|
|
config, err := conf.LoadGlobal(apiTestConfig)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
if cb != nil {
|
|
cb(config, nil)
|
|
}
|
|
|
|
conn, err := test.SetupDBConnection(config)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
if cb != nil {
|
|
cb(nil, conn)
|
|
}
|
|
|
|
limiterOpts := NewLimiterOptions(config)
|
|
return NewAPIWithVersion(config, conn, apiTestVersion, limiterOpts), config, nil
|
|
}
|
|
|
|
func TestEmailEnabledByDefault(t *testing.T) {
|
|
api, _, err := setupAPIForTest()
|
|
require.NoError(t, err)
|
|
|
|
require.True(t, api.config.External.Email.Enabled)
|
|
}
|