package controller import ( "testing" "github.com/QuantumNous/new-api/constant" "github.com/QuantumNous/new-api/model" "github.com/glebarez/sqlite" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gorm.io/gorm" "gorm.io/gorm/logger" ) func setupChannelAssetCredentialControllerDB(t *testing.T) *gorm.DB { t.Helper() db, err := gorm.Open(sqlite.Open("file:controller_channel_asset_credentials?mode=memory&cache=shared"), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), }) require.NoError(t, err) sqlDB, err := db.DB() require.NoError(t, err) sqlDB.SetMaxOpenConns(1) originalDB := model.DB model.DB = db require.NoError(t, db.AutoMigrate(&model.Channel{}, &model.ChannelAssetCredential{})) t.Cleanup(func() { model.DB = originalDB require.NoError(t, sqlDB.Close()) }) return db } func TestAttachChannelAssetCredentialSummariesDoesNotExposeSecrets(t *testing.T) { db := setupChannelAssetCredentialControllerDB(t) channel := &model.Channel{Id: 61, Type: constant.ChannelTypeChinaMobileSeedance, Key: "video-key", Name: "channel"} require.NoError(t, db.Create(channel).Error) require.NoError(t, model.UpsertChannelAssetCredential(&model.ChannelAssetCredential{ ChannelId: 61, AccessKey: "ak-secret", SecretKey: "sk-secret", PoolID: "pool-61", })) require.NoError(t, attachChannelAssetCredentialSummaries([]*model.Channel{channel})) assert.True(t, channel.AssetCredentialConfigured) assert.Equal(t, "pool-61", channel.AssetCredentialPoolID) assert.NotContains(t, channel.Key, "ak-secret") assert.NotContains(t, channel.Key, "sk-secret") }