mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
77 lines
1.4 KiB
Go
77 lines
1.4 KiB
Go
package test
|
|
|
|
import (
|
|
"github.com/crawlab-team/crawlab/core/interfaces"
|
|
"github.com/crawlab-team/crawlab/core/models/delegate"
|
|
"github.com/crawlab-team/crawlab/core/models/models"
|
|
"github.com/crawlab-team/crawlab/core/models/service"
|
|
"github.com/crawlab-team/crawlab/core/result"
|
|
"github.com/crawlab-team/crawlab/db/mongo"
|
|
"go.uber.org/dig"
|
|
"testing"
|
|
)
|
|
|
|
func init() {
|
|
T = NewTest()
|
|
}
|
|
|
|
var T *Test
|
|
|
|
type Test struct {
|
|
// dependencies
|
|
modelSvc service.ModelService
|
|
resultSvc interfaces.ResultService
|
|
|
|
// test data
|
|
TestColName string
|
|
TestCol *mongo.Col
|
|
TestDc *models.DataCollection
|
|
}
|
|
|
|
func (t *Test) Setup(t2 *testing.T) {
|
|
t2.Cleanup(t.Cleanup)
|
|
}
|
|
|
|
func (t *Test) Cleanup() {
|
|
_ = t.modelSvc.DropAll()
|
|
}
|
|
|
|
func NewTest() *Test {
|
|
var err error
|
|
|
|
// test
|
|
t := &Test{
|
|
TestColName: "test_results",
|
|
}
|
|
|
|
// dependency injection
|
|
c := dig.New()
|
|
if err := c.Provide(service.NewService); err != nil {
|
|
panic(err)
|
|
}
|
|
if err := c.Invoke(func(
|
|
modelSvc service.ModelService,
|
|
) {
|
|
t.modelSvc = modelSvc
|
|
}); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// data collection
|
|
t.TestDc = &models.DataCollection{
|
|
Name: t.TestColName,
|
|
}
|
|
if err := delegate.NewModelDelegate(t.TestDc).Add(); err != nil {
|
|
panic(err)
|
|
}
|
|
t.TestCol = mongo.GetMongoCol(t.TestColName)
|
|
|
|
// result service
|
|
t.resultSvc, err = result.GetResultService(t.TestDc.GetId())
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return t
|
|
}
|