package services import ( "github.com/glebarez/sqlite" "github.com/inchstep/server/internal/models" "github.com/stretchr/testify/suite" "gorm.io/gorm" ) func strPtr(s string) *string { return &s } // ServiceTestSuite 提供内存 SQLite 数据库用于服务层测试 type ServiceTestSuite struct { suite.Suite db *gorm.DB svc *UserService svcCk *CheckInService svcPts *PointsService } func (s *ServiceTestSuite) SetupSuite() { db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{}) s.Require().NoError(err) s.Require().NoError(db.AutoMigrate(&models.User{}, &models.CheckInItem{}, &models.CheckInRecord{}, &models.Achievement{}, &models.Admin{})) s.db = db s.svc = NewUserService(db) s.svcCk = NewCheckInService(db) s.svcPts = NewPointsService(db) } func (s *ServiceTestSuite) TearDownTest() { s.db.Exec("DELETE FROM users") s.db.Exec("DELETE FROM check_in_items") s.db.Exec("DELETE FROM check_in_records") s.db.Exec("DELETE FROM achievements") }