github.com/etecs-ru/gnomock@v0.13.2/preset/k3s/preset_test.go (about) 1 package k3s_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/etecs-ru/gnomock" 8 "github.com/etecs-ru/gnomock/preset/k3s" 9 "github.com/stretchr/testify/require" 10 v1 "k8s.io/api/core/v1" 11 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 12 "k8s.io/client-go/kubernetes" 13 ) 14 15 func TestPreset(t *testing.T) { 16 t.Parallel() 17 18 p := k3s.Preset( 19 k3s.WithPort(48448), 20 k3s.WithVersion("v1.19.3"), 21 ) 22 c, err := gnomock.Start( 23 p, 24 gnomock.WithContainerName("k3s"), 25 gnomock.WithDebugMode(), 26 ) 27 require.NoError(t, err) 28 29 defer func() { 30 require.NoError(t, gnomock.Stop(c)) 31 }() 32 33 kubeconfig, err := k3s.Config(c) 34 require.NoError(t, err) 35 36 client, err := kubernetes.NewForConfig(kubeconfig) 37 require.NoError(t, err) 38 39 ctx := context.Background() 40 41 pods, err := client.CoreV1().Pods(metav1.NamespaceDefault).List(ctx, metav1.ListOptions{}) 42 require.NoError(t, err) 43 require.Empty(t, pods.Items) 44 45 pod := &v1.Pod{ 46 ObjectMeta: metav1.ObjectMeta{ 47 Name: "gnomock", 48 Namespace: metav1.NamespaceDefault, 49 }, 50 Spec: v1.PodSpec{ 51 Containers: []v1.Container{ 52 { 53 Name: "gnomock", 54 Image: "docker.io/orlangure/gnomock-test-image", 55 }, 56 }, 57 RestartPolicy: v1.RestartPolicyNever, 58 }, 59 } 60 61 _, err = client.CoreV1().Pods(metav1.NamespaceDefault).Create(ctx, pod, metav1.CreateOptions{}) 62 require.NoError(t, err) 63 64 pods, err = client.CoreV1().Pods(metav1.NamespaceDefault).List(ctx, metav1.ListOptions{}) 65 require.NoError(t, err) 66 require.Len(t, pods.Items, 1) 67 require.Equal(t, "gnomock", pods.Items[0].Name) 68 } 69 70 func TestPreset_withDefaults(t *testing.T) { 71 t.Parallel() 72 73 p := k3s.Preset() 74 c, err := gnomock.Start(p, gnomock.WithContainerName("k3s-default")) 75 require.NoError(t, err) 76 77 defer func() { 78 require.NoError(t, gnomock.Stop(c)) 79 }() 80 81 kubeconfig, err := k3s.Config(c) 82 require.NoError(t, err) 83 84 client, err := kubernetes.NewForConfig(kubeconfig) 85 require.NoError(t, err) 86 87 ctx := context.Background() 88 89 pods, err := client.CoreV1().Pods(metav1.NamespaceDefault).List(ctx, metav1.ListOptions{}) 90 require.NoError(t, err) 91 require.Empty(t, pods.Items) 92 }