/
cli_test.go
103 lines (80 loc) · 3.43 KB
/
cli_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package cli_test
import (
"context"
"testing"
"github.com/stretchr/testify/require"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/test/e2e/framework"
"github.com/fission/fission/test/e2e/framework/cli"
"github.com/fission/fission/test/e2e/framework/services"
)
func TestFissionCLI(t *testing.T) {
f := framework.NewFramework()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
err := f.Start(ctx)
require.NoError(t, err)
err = services.StartServices(ctx, f)
require.NoError(t, err)
fissionClient, err := f.ClientGen().GetFissionClient()
require.NoError(t, err)
t.Run("environment", func(t *testing.T) {
t.Run("create", func(t *testing.T) {
_, err := cli.ExecCommand(f, ctx, "env", "create", "--name", "test-env", "--image", "fission/python-env")
require.NoError(t, err)
env, err := fissionClient.CoreV1().Environments(metav1.NamespaceDefault).Get(ctx, "test-env", metav1.GetOptions{})
require.NoError(t, err)
require.NotNil(t, env)
require.Equal(t, "test-env", env.Name)
require.Equal(t, "fission/python-env", env.Spec.Runtime.Image)
})
t.Run("update", func(t *testing.T) {
_, err := cli.ExecCommand(f, ctx, "env", "update", "--name", "test-env", "--image", "fission/python-env:v2")
require.NoError(t, err)
env, err := fissionClient.CoreV1().Environments(metav1.NamespaceDefault).Get(ctx, "test-env", metav1.GetOptions{})
require.NoError(t, err)
require.NotNil(t, env)
require.Equal(t, "test-env", env.Name)
require.Equal(t, "fission/python-env:v2", env.Spec.Runtime.Image)
})
t.Run("delete", func(t *testing.T) {
_, err := cli.ExecCommand(f, ctx, "env", "delete", "--name", "test-env")
require.NoError(t, err)
_, err = fissionClient.CoreV1().Environments(metav1.NamespaceDefault).Get(ctx, "test-env", metav1.GetOptions{})
require.Error(t, err)
})
})
t.Run("function", func(t *testing.T) {
envName := "test-func-env"
testFuncName := "hello"
t.Run("create", func(t *testing.T) {
_, err = cli.ExecCommand(f, ctx, "env", "create", "--name", envName, "--image", "fission/python-env")
require.NoError(t, err)
_, err := cli.ExecCommand(f, ctx, "function", "create", "--name", testFuncName, "--code", "./hello.js", "--env", envName)
require.NoError(t, err)
testFunc, err := fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncName, metav1.GetOptions{})
require.NoError(t, err)
require.NotNil(t, testFunc)
require.Equal(t, testFuncName, testFunc.Name)
require.Equal(t, envName, testFunc.Spec.Environment.Name)
})
t.Run("update", func(t *testing.T) {
_, err := cli.ExecCommand(f, ctx, "function", "update", "--name", testFuncName, "--labels", "env=test")
require.NoError(t, err)
testFunc, err := fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncName, metav1.GetOptions{})
require.NoError(t, err)
require.NotNil(t, testFunc)
require.Equal(t, testFuncName, testFunc.Name)
require.NotNil(t, testFunc.Labels)
require.Equal(t, "test", testFunc.Labels["env"])
})
t.Run("delete", func(t *testing.T) {
_, err := cli.ExecCommand(f, ctx, "function", "delete", "--name", testFuncName)
require.NoError(t, err)
_, err = fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncName, metav1.GetOptions{})
require.Error(t, err)
_, err = cli.ExecCommand(f, ctx, "env", "delete", "--name", envName)
require.NoError(t, err)
})
})
}