MCPcopy Create free account
hub / github.com/cloudbase/garm / SetupTest

Method SetupTest

database/sql/users_test.go:61–131  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

59}
60
61func (s *UserTestSuite) SetupTest() {
62 ctx := context.Background()
63 watcher.InitWatcher(ctx)
64 // create testing sqlite database
65 db, err := NewSQLDatabase(context.Background(), garmTesting.GetTestSqliteDBConfig(s.T()))
66 if err != nil {
67 s.FailNow(fmt.Sprintf("failed to create db connection: %s", err))
68 }
69 s.Store = db
70
71 // create some user objects in the database, for testing purposes
72 users := []params.User{}
73 for i := 1; i <= 3; i++ {
74 user, err := db.CreateUser(
75 context.Background(),
76 params.NewUserParams{
77 Email: fmt.Sprintf("test-%d@example.com", i),
78 Username: fmt.Sprintf("test-username-%d", i),
79 FullName: fmt.Sprintf("test-fullname-%d", i),
80 Password: fmt.Sprintf("test-password-%d", i),
81 },
82 )
83 if err != nil {
84 s.FailNow(fmt.Sprintf("failed to create database object (test-%d@example.com)", i))
85 }
86
87 users = append(users, user)
88 }
89
90 // create store with mocked sql connection
91 sqlDB, sqlMock, err := sqlmock.New()
92 if err != nil {
93 s.FailNow(fmt.Sprintf("failed to run 'sqlmock.New()', got error: %v", err))
94 }
95 s.T().Cleanup(func() { sqlDB.Close() })
96 mysqlConfig := mysql.Config{
97 Conn: sqlDB,
98 SkipInitializeWithVersion: true,
99 }
100 gormConfig := &gorm.Config{}
101 if flag.Lookup("test.v").Value.String() == falseString {
102 gormConfig.Logger = logger.Default.LogMode(logger.Silent)
103 }
104 gormConn, err := gorm.Open(mysql.New(mysqlConfig), gormConfig)
105 if err != nil {
106 s.FailNow(fmt.Sprintf("fail to open gorm connection: %v", err))
107 }
108 s.StoreSQLMocked = &sqlDatabase{
109 conn: gormConn,
110 cfg: garmTesting.GetTestSqliteDBConfig(s.T()),
111 }
112
113 // setup test fixtures
114 var enabled bool
115 fixtures := &UserTestFixtures{
116 Users: users,
117 NewUserParams: params.NewUserParams{
118 Email: "test@example.com",

Callers

nothing calls this directly

Calls 5

InitWatcherFunction · 0.92
NewSQLDatabaseFunction · 0.85
CreateUserMethod · 0.65
CloseMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected