github.com/kubeshop/testkube@v1.17.23/internal/app/api/v1/tests_test.go (about)

     1  package v1
     2  
     3  import (
     4  	"net/http/httptest"
     5  	"testing"
     6  
     7  	testsv3 "github.com/kubeshop/testkube-operator/api/tests/v3"
     8  	testsclientv3 "github.com/kubeshop/testkube-operator/pkg/client/tests/v3"
     9  	"github.com/kubeshop/testkube/pkg/log"
    10  	"github.com/kubeshop/testkube/pkg/server"
    11  
    12  	"github.com/gofiber/fiber/v2"
    13  	"github.com/stretchr/testify/assert"
    14  	corev1 "k8s.io/api/core/v1"
    15  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    16  	"k8s.io/apimachinery/pkg/runtime"
    17  	k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
    18  	"sigs.k8s.io/controller-runtime/pkg/client/fake"
    19  )
    20  
    21  func TestTestkubeAPI_DeleteTest(t *testing.T) {
    22  	app := fiber.New()
    23  
    24  	s := &TestkubeAPI{
    25  		HTTPServer: server.HTTPServer{
    26  			Mux: app,
    27  			Log: log.DefaultLogger,
    28  		},
    29  		TestsClient: getMockTestClient(),
    30  	}
    31  
    32  	app.Delete("/tests/:id", s.DeleteTestHandler())
    33  
    34  	req := httptest.NewRequest("DELETE", "http://localhost/tests/k6?skipDeleteExecutions=true", nil)
    35  	resp, err := app.Test(req, -1)
    36  
    37  	assert.NoError(t, err)
    38  	defer resp.Body.Close()
    39  
    40  }
    41  
    42  func getMockTestClient() *testsclientv3.TestsClient {
    43  	scheme := runtime.NewScheme()
    44  	testsv3.AddToScheme(scheme)
    45  	corev1.AddToScheme(scheme)
    46  	initObjects := []k8sclient.Object{
    47  		&testsv3.Test{
    48  			TypeMeta: metav1.TypeMeta{
    49  				Kind:       "Test",
    50  				APIVersion: "tests.testkube.io/v3",
    51  			},
    52  			ObjectMeta: metav1.ObjectMeta{
    53  				Name:      "k6",
    54  				Namespace: "",
    55  			},
    56  			Spec: testsv3.TestSpec{},
    57  		},
    58  	}
    59  
    60  	fakeClient := fake.NewClientBuilder().
    61  		WithScheme(scheme).
    62  		WithObjects(initObjects...).
    63  		Build()
    64  
    65  	return testsclientv3.NewClient(fakeClient, "")
    66  }