...
1
2
3
4 package framework_test
5
6 import (
7 "bytes"
8 "strings"
9 "testing"
10
11 "github.com/stretchr/testify/assert"
12 "github.com/stretchr/testify/require"
13 "sigs.k8s.io/kustomize/kyaml/fn/framework"
14 "sigs.k8s.io/kustomize/kyaml/kio"
15 "sigs.k8s.io/kustomize/kyaml/yaml"
16 )
17
18 func TestExecute_Result(t *testing.T) {
19 p := framework.SimpleProcessor{Filter: kio.FilterFunc(func(in []*yaml.RNode) ([]*yaml.RNode, error) {
20 return in, framework.Results{
21 {
22 Message: "bad value for replicas",
23 Severity: framework.Error,
24 ResourceRef: &yaml.ResourceIdentifier{
25 TypeMeta: yaml.TypeMeta{APIVersion: "v1", Kind: "Deployment"},
26 NameMeta: yaml.NameMeta{Name: "tester", Namespace: "default"},
27 },
28 Field: &framework.Field{
29 Path: ".spec.Replicas",
30 CurrentValue: "0",
31 ProposedValue: "3",
32 },
33 File: &framework.File{
34 Path: "/path/to/deployment.yaml",
35 Index: 0,
36 },
37 },
38 {
39 Message: "some error",
40 Severity: framework.Error,
41 Tags: map[string]string{"foo": "bar"},
42 },
43 }
44 })}
45 out := new(bytes.Buffer)
46 source := &kio.ByteReadWriter{Reader: bytes.NewBufferString(`
47 kind: ResourceList
48 apiVersion: config.kubernetes.io/v1
49 items:
50 - kind: Deployment
51 apiVersion: v1
52 metadata:
53 name: tester
54 namespace: default
55 spec:
56 replicas: 0
57 `), Writer: out}
58 err := framework.Execute(p, source)
59 require.NoError(t, err)
60 assert.Equal(t, `apiVersion: config.kubernetes.io/v1
61 kind: ResourceList
62 items:
63 - kind: Deployment
64 apiVersion: v1
65 metadata:
66 name: tester
67 namespace: default
68 spec:
69 replicas: 0
70 results:
71 - message: bad value for replicas
72 severity: error
73 resourceRef:
74 apiVersion: v1
75 kind: Deployment
76 name: tester
77 namespace: default
78 field:
79 path: .spec.Replicas
80 currentValue: "0"
81 proposedValue: "3"
82 file:
83 path: /path/to/deployment.yaml
84 - message: some error
85 severity: error
86 tags:
87 foo: bar`, strings.TrimSpace(out.String()))
88 }
89
View as plain text