feat: add runtime log level settings

This commit is contained in:
line-6000
2026-06-12 00:49:18 +08:00
parent 9b397bd45e
commit 9ac9894dba
148 changed files with 486 additions and 172 deletions
+1
View File
@@ -162,6 +162,7 @@ func seedDefaultSettings() {
}
defaults := []mdb.Setting{
{Group: mdb.SettingGroupSystem, Key: mdb.SettingKeyAmountPrecision, Value: "2", Type: mdb.SettingTypeInt},
{Group: mdb.SettingGroupSystem, Key: mdb.SettingKeySystemLogLevel, Value: mdb.SettingDefaultSystemLogLevel, Type: mdb.SettingTypeString},
{Group: mdb.SettingGroupEpay, Key: mdb.SettingKeyEpayDefaultToken, Value: "usdt", Type: mdb.SettingTypeString},
{Group: mdb.SettingGroupEpay, Key: mdb.SettingKeyEpayDefaultCurrency, Value: "cny", Type: mdb.SettingTypeString},
{Group: mdb.SettingGroupEpay, Key: mdb.SettingKeyEpayDefaultNetwork, Value: "tron", Type: mdb.SettingTypeString},
+68
View File
@@ -1,9 +1,13 @@
package dao
import (
"path/filepath"
"testing"
"github.com/GMWalletApp/epusdt/model/mdb"
"github.com/libtnb/sqlite"
"github.com/spf13/viper"
"gorm.io/gorm"
)
func TestDefaultRpcNodesIncludesManualVerifyEpusdtEvmNodes(t *testing.T) {
@@ -69,3 +73,67 @@ func TestDefaultRpcNodesIncludesTonLiteGeneralNode(t *testing.T) {
t.Fatalf("TON lite seed status = %q, want %q", got.Status, mdb.RpcNodeStatusUnknown)
}
}
func TestSeedDefaultSettingsIncludesSystemLogLevel(t *testing.T) {
db := setupSeedSettingsTestDB(t)
Mdb = db
seedDefaultSettings()
var row mdb.Setting
if err := Mdb.Where("`key` = ?", mdb.SettingKeySystemLogLevel).Take(&row).Error; err != nil {
t.Fatalf("load system.log_level seed: %v", err)
}
if row.Group != mdb.SettingGroupSystem {
t.Fatalf("system.log_level group = %q, want %q", row.Group, mdb.SettingGroupSystem)
}
if row.Value != mdb.SettingDefaultSystemLogLevel {
t.Fatalf("system.log_level value = %q, want %q", row.Value, mdb.SettingDefaultSystemLogLevel)
}
if row.Type != mdb.SettingTypeString {
t.Fatalf("system.log_level type = %q, want %q", row.Type, mdb.SettingTypeString)
}
}
func TestSeedDefaultSettingsDoesNotOverwriteSystemLogLevel(t *testing.T) {
db := setupSeedSettingsTestDB(t)
Mdb = db
if err := Mdb.Create(&mdb.Setting{
Group: mdb.SettingGroupSystem,
Key: mdb.SettingKeySystemLogLevel,
Value: "debug",
Type: mdb.SettingTypeString,
}).Error; err != nil {
t.Fatalf("precreate system.log_level: %v", err)
}
seedDefaultSettings()
var row mdb.Setting
if err := Mdb.Where("`key` = ?", mdb.SettingKeySystemLogLevel).Take(&row).Error; err != nil {
t.Fatalf("load system.log_level seed: %v", err)
}
if row.Value != "debug" {
t.Fatalf("system.log_level value = %q, want existing debug", row.Value)
}
}
func setupSeedSettingsTestDB(t *testing.T) *gorm.DB {
t.Helper()
oldDB := Mdb
viper.Reset()
viper.Set("app_uri", "https://example.com")
t.Cleanup(func() {
Mdb = oldDB
viper.Reset()
})
db, err := gorm.Open(sqlite.Open(filepath.Join(t.TempDir(), "seed-settings.db")), &gorm.Config{})
if err != nil {
t.Fatalf("open sqlite: %v", err)
}
if err := db.AutoMigrate(&mdb.Setting{}); err != nil {
t.Fatalf("migrate settings: %v", err)
}
return db
}