...

Source file src/sigs.k8s.io/kustomize/kyaml/fn/framework/framework_test.go

Documentation: sigs.k8s.io/kustomize/kyaml/fn/framework

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     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