github.com/kubeshop/testkube@v1.17.23/internal/graphql/resolvers/test_client.go (about)

     1  package resolvers
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/99designs/gqlgen/client"
     7  	"github.com/99designs/gqlgen/graphql/handler"
     8  	"github.com/golang/mock/gomock"
     9  
    10  	"github.com/kubeshop/testkube/internal/graphql/gen"
    11  	"github.com/kubeshop/testkube/internal/graphql/services"
    12  )
    13  
    14  type TestClient struct {
    15  	ctrl             *gomock.Controller
    16  	Client           *client.Client
    17  	ExecutorsService *services.MockExecutorsService
    18  }
    19  
    20  func NewTestClient(t *testing.T) *TestClient {
    21  	ctrl := gomock.NewController(t)
    22  	executorsSrv := services.NewMockExecutorsService(ctrl)
    23  	res := &Resolver{
    24  		ExecutorsService: executorsSrv,
    25  	}
    26  	return &TestClient{
    27  		ctrl:             ctrl,
    28  		Client:           client.New(handler.NewDefaultServer(gen.NewExecutableSchema(gen.Config{Resolvers: res}))),
    29  		ExecutorsService: executorsSrv,
    30  	}
    31  }
    32  
    33  func (t *TestClient) Finish() {
    34  	t.ctrl.Finish()
    35  }