(t *testing.T, db *gorm.DB, dialect string, managedTokensTable *bool)
| 274 | } |
| 275 | |
| 276 | func runTokenMigrationCompatibilityTest(t *testing.T, db *gorm.DB, dialect string, managedTokensTable *bool) { |
| 277 | t.Helper() |
| 278 | |
| 279 | legacyKey := strings.Repeat("a", 48) |
| 280 | longKey := strings.Repeat("b", 64) |
| 281 | |
| 282 | if err := db.AutoMigrate(&legacyToken{}); err != nil { |
| 283 | t.Fatalf("failed to create legacy token schema: %v", err) |
| 284 | } |
| 285 | if managedTokensTable != nil { |
| 286 | *managedTokensTable = true |
| 287 | } |
| 288 | if err := db.Create(&legacyToken{ |
| 289 | UserId: 7, |
| 290 | Key: legacyKey, |
| 291 | Status: common.TokenStatusEnabled, |
| 292 | Name: "legacy-token", |
| 293 | CreatedTime: 1, |
| 294 | AccessedTime: 1, |
| 295 | ExpiredTime: -1, |
| 296 | RemainQuota: 100, |
| 297 | UnlimitedQuota: true, |
| 298 | ModelLimitsEnabled: false, |
| 299 | ModelLimits: "", |
| 300 | AllowIps: common.GetPointer(""), |
| 301 | UsedQuota: 0, |
| 302 | Group: "default", |
| 303 | CrossGroupRetry: false, |
| 304 | }).Error; err != nil { |
| 305 | t.Fatalf("failed to seed legacy token row: %v", err) |
| 306 | } |
| 307 | |
| 308 | if got := getTokenKeyColumnType(t, db, dialect); got != "char(48)" { |
| 309 | t.Fatalf("expected legacy key column type char(48), got %q", got) |
| 310 | } |
| 311 | |
| 312 | migrateTokenControllerTestDB(t, db) |
| 313 | |
| 314 | if got := getTokenKeyColumnType(t, db, dialect); got != "varchar(128)" { |
| 315 | t.Fatalf("expected migrated key column type varchar(128), got %q", got) |
| 316 | } |
| 317 | |
| 318 | var migratedToken model.Token |
| 319 | if err := db.First(&migratedToken, "name = ?", "legacy-token").Error; err != nil { |
| 320 | t.Fatalf("failed to load migrated token row: %v", err) |
| 321 | } |
| 322 | if migratedToken.Key != legacyKey { |
| 323 | t.Fatalf("expected migrated token key %q, got %q", legacyKey, migratedToken.Key) |
| 324 | } |
| 325 | if migratedToken.Name != "legacy-token" { |
| 326 | t.Fatalf("expected migrated token name to be preserved, got %q", migratedToken.Name) |
| 327 | } |
| 328 | |
| 329 | inserted := model.Token{ |
| 330 | UserId: 8, |
| 331 | Name: "long-token", |
| 332 | Key: longKey, |
| 333 | Status: common.TokenStatusEnabled, |
no test coverage detected