chatdesk-ui/auth_v2.169.0/internal/api/api_test.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)
}