MCPcopy Create free account
hub / github.com/QuantumNous/new-api / openTokenControllerExternalDB

Function openTokenControllerExternalDB

controller/token_test.go:115–161  ·  view source on GitHub ↗
(t *testing.T, dialect string, dsn string)

Source from the content-addressed store, hash-verified

113}
114
115func openTokenControllerExternalDB(t *testing.T, dialect string, dsn string) (*gorm.DB, *bool) {
116 t.Helper()
117
118 gin.SetMode(gin.TestMode)
119 common.RedisEnabled = false
120
121 var (
122 db *gorm.DB
123 dbType common.DatabaseType
124 err error
125 )
126 switch dialect {
127 case "mysql":
128 dbType = common.DatabaseTypeMySQL
129 db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
130 case "postgres":
131 dbType = common.DatabaseTypePostgreSQL
132 db, err = gorm.Open(postgres.Open(dsn), &gorm.Config{})
133 default:
134 t.Fatalf("unsupported dialect %q", dialect)
135 }
136 common.SetDatabaseTypes(dbType, dbType)
137 if err != nil {
138 t.Fatalf("failed to open %s db: %v", dialect, err)
139 }
140
141 model.DB = db
142 model.LOG_DB = db
143
144 if db.Migrator().HasTable("tokens") {
145 t.Skipf("refusing to run %s migration compatibility test against external database because tokens table already exists", dialect)
146 }
147
148 managedTokensTable := new(bool)
149
150 t.Cleanup(func() {
151 if *managedTokensTable && db.Migrator().HasTable("tokens") {
152 _ = db.Migrator().DropTable("tokens")
153 }
154 sqlDB, err := db.DB()
155 if err == nil {
156 _ = sqlDB.Close()
157 }
158 })
159
160 return db, managedTokensTable
161}
162
163func seedToken(t *testing.T, db *gorm.DB, userID int, name string, rawKey string) *model.Token {
164 t.Helper()

Calls 3

SetDatabaseTypesFunction · 0.92
OpenMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected