Files
wx_service/internal/smoke/service/smoke_log_service_test.go

71 lines
1.5 KiB
Go

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)
}
}