github.com/blend/go-sdk@v1.20240719.1/testutil/create_test_database.go (about) 1 /* 2 3 Copyright (c) 2024 - Present. Blend Labs, Inc. All rights reserved 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file. 5 6 */ 7 8 package testutil 9 10 import ( 11 "context" 12 "fmt" 13 14 "github.com/blend/go-sdk/db" 15 "github.com/blend/go-sdk/db/dbutil" 16 "github.com/blend/go-sdk/uuid" 17 ) 18 19 // CreateTestDatabase creates a randomized test database. 20 func CreateTestDatabase(ctx context.Context, opts ...db.Option) (*db.Connection, error) { 21 databaseName := fmt.Sprintf("testdb_%s", uuid.V4().String()) 22 if err := dbutil.CreateDatabase(ctx, databaseName, opts...); err != nil { 23 return nil, err 24 } 25 26 defaults := []db.Option{ 27 db.OptHost("localhost"), 28 db.OptSSLMode("disable"), 29 db.OptConfigFromEnv(), 30 db.OptDatabase(databaseName), 31 db.OptDialect(db.DialectPostgres), 32 } 33 conn, err := db.New( 34 append(defaults, opts...)..., 35 ) 36 if err != nil { 37 return nil, err 38 } 39 err = conn.Open() 40 if err != nil { 41 return nil, err 42 } 43 return conn, nil 44 }