Files
crawlab/core/user/test/base.go
2024-06-14 15:42:50 +08:00

66 lines
1.2 KiB
Go

package test
import (
"github.com/crawlab-team/crawlab/core/interfaces"
"github.com/crawlab-team/crawlab/core/models/service"
"github.com/crawlab-team/crawlab/core/user"
"go.uber.org/dig"
"testing"
)
func init() {
var err error
T, err = NewTest()
if err != nil {
panic(err)
}
}
var T *Test
type Test struct {
// dependencies
modelSvc service.ModelService
userSvc interfaces.UserService
// test data
TestUsername string
TestPassword string
TestNewPassword string
}
func (t *Test) Setup(t2 *testing.T) {
var err error
t.userSvc, err = user.NewUserService()
if err != nil {
panic(err)
}
t2.Cleanup(t.Cleanup)
}
func (t *Test) Cleanup() {
_ = t.modelSvc.GetBaseService(interfaces.ModelIdUser).DeleteList(nil)
}
func NewTest() (t *Test, err error) {
// test
t = &Test{
TestUsername: "test_username",
TestPassword: "test_password",
TestNewPassword: "test_new_password",
}
// dependency injection
c := dig.New()
if err := c.Provide(service.GetService); err != nil {
return nil, err
}
if err := c.Invoke(func(modelSvc service.ModelService) {
t.modelSvc = modelSvc
}); err != nil {
return nil, err
}
return t, nil
}