Files
zeronline 545329ac40
CI / Server (Go) (push) Has been cancelled
CI / Web (Next.js) (push) Has been cancelled
CI / Mobile (React Native) (push) Has been cancelled
CI / Admin (React) (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
修改页面
2026-06-25 16:33:32 +08:00

36 lines
987 B
Go

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