forked from dvob/k8s-wasm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathk8s_test.go
78 lines (67 loc) · 1.73 KB
/
k8s_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
package wasm
import (
"context"
"encoding/json"
"testing"
v1 "k8s.io/api/authentication/v1"
)
func TestTokenReview(t *testing.T) {
runtimes := getRawRuntimes(t, map[ProtocolType]string{
ProtocolTypeRaw: "../modules/rs/target/wasm32-unknown-unknown/debug/k8s_raw.wasm",
ProtocolTypeWASI: "../modules/rs/target/wasm32-wasi/debug/k8s_wasi.wasm",
ProtocolTypeWAPC: "../modules/rs/target/wasm32-unknown-unknown/debug/k8s_wapc.wasm",
})
for _, runtime := range runtimes {
name := string(runtime.runtime) + "_" + string(runtime.protocol)
t.Run(name, func(t *testing.T) {
t.Run("correct", func(t *testing.T) {
tr := &v1.TokenReview{
Spec: v1.TokenReviewSpec{
Token: "correct-token",
},
}
input, err := json.Marshal(tr)
if err != nil {
t.Fatal(err)
}
ctx := context.Background()
output, err := runtime.Run(ctx, fnName, input)
if err != nil {
t.Fatal(err)
}
response := &v1.TokenReview{}
err = json.Unmarshal(output, response)
if err != nil {
t.Fatal(err)
}
if !response.Status.Authenticated {
t.Fatalf("resonse should be authenticated: '%s'", output)
}
})
t.Run("wrong", func(t *testing.T) {
tr := &v1.TokenReview{
Spec: v1.TokenReviewSpec{
Token: "wrong-token",
},
}
input, err := json.Marshal(tr)
if err != nil {
t.Fatal(err)
}
ctx := context.Background()
output, err := runtime.Run(ctx, fnName, input)
if err != nil {
t.Fatal(err)
}
response := &v1.TokenReview{}
err = json.Unmarshal(output, response)
if err != nil {
t.Fatal(err)
}
if response.Status.Authenticated {
t.Fatalf("resonse should not be authenticated: '%s'", output)
}
})
})
}
}