...
1 package getambassadorio_test
2
3 import (
4 "encoding/json"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8
9 "github.com/datawire/dlib/dlog"
10 getambassadorio "github.com/emissary-ingress/emissary/v3/pkg/api/getambassador.io"
11 "github.com/emissary-ingress/emissary/v3/pkg/kates"
12 )
13
14 func TestValidation(t *testing.T) {
15 jsonStr := `{
16 "apiVersion":"getambassador.io/v2",
17 "kind":"Mapping",
18 "metadata":{
19 "annotations":{
20 "kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"getambassador.io/v3alpha1\",\"kind\":\"Mapping\",\"metadata\":{\"annotations\":{},\"name\":\"quote-rewrite\",\"namespace\":\"default\"},\"spec\":{\"hostname\":\"*\",\"prefix\":\"/ffs/\",\"rewrite\":\"\",\"service\":\"quote\"}}"
21 },
22 "creationTimestamp":"2022-01-19T00:11:43Z",
23 "generation":1,
24 "name":"quote-rewrite",
25 "namespace":"default",
26 "uid":"01b3ddea-24d7-45c6-a05a-64386f1b9588"
27 },
28 "spec":{
29 "ambassador_id":[
30 "--apiVersion-v3alpha1-only--default"
31 ],
32 "prefix":"/ffs/",
33 "rewrite":"",
34 "service":"quote"
35 }
36 }`
37
38 var obj kates.Unstructured
39 require.NoError(t, json.Unmarshal([]byte(jsonStr), &obj.Object))
40
41 validator := getambassadorio.NewValidator()
42 ctx := dlog.NewTestContext(t, true)
43
44 require.NoError(t, validator.Validate(ctx, &obj))
45 }
46
View as plain text