修复resisted记录被默认值覆盖为1的问题
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
smokemodel "wx_service/internal/smoke/model"
|
||||
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
func setupSmokeLogServiceTestDB(t *testing.T) *gorm.DB {
|
||||
t.Helper()
|
||||
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Silent),
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("open sqlite: %v", err)
|
||||
}
|
||||
|
||||
if err := db.Exec(`
|
||||
CREATE TABLE fa_smoke_log (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
uid INTEGER NOT NULL,
|
||||
smoke_time DATE NULL,
|
||||
smoke_at DATETIME NULL,
|
||||
remark TEXT,
|
||||
createtime INTEGER,
|
||||
updatetime INTEGER,
|
||||
deletetime INTEGER,
|
||||
level INTEGER DEFAULT 1,
|
||||
num INTEGER DEFAULT 1
|
||||
)`).Error; err != nil {
|
||||
t.Fatalf("create fa_smoke_log: %v", err)
|
||||
}
|
||||
|
||||
return db
|
||||
}
|
||||
|
||||
func TestSmokeLogServiceCreateKeepsZeroForResisted(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
db := setupSmokeLogServiceTestDB(t)
|
||||
svc := NewSmokeLogService(db)
|
||||
|
||||
smokeAt := time.Date(2026, 3, 4, 0, 59, 0, 0, time.Local)
|
||||
_, err := svc.Create(context.Background(), 1001, CreateSmokeLogRequest{
|
||||
SmokeAt: &smokeAt,
|
||||
Remark: "resist",
|
||||
Level: 0,
|
||||
Num: 0,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("create resisted log: %v", err)
|
||||
}
|
||||
|
||||
var got smokemodel.SmokeLog
|
||||
if err := db.Where("uid = ?", 1001).Order("id DESC").First(&got).Error; err != nil {
|
||||
t.Fatalf("load created record: %v", err)
|
||||
}
|
||||
|
||||
if got.Level != 0 || got.Num != 0 {
|
||||
t.Fatalf("created resisted log level/num=(%d,%d), want=(0,0)", got.Level, got.Num)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user