Files
kustomize/plugin/builtin/suffixtransformer/SuffixTransformer_test.go
Julian 3dbc88bf94 Refactor the PrefixSuffixTransformer into separate prefix- and suffix transformers (#4318)
* Refactor prefix filter into its own filter, decoupled from the prefixsuffix filter

* Refactor prefix transformer into its own transformer, decoupled from the prefixsuffix transformer

* Refactor suffix filter into its own filter, decoupled from the prefixsuffix filter

* Refactor suffix transformer into its own transformer, decoupled from the prefixsuffix transformer

* Add a default nameSuffix field spec in addition to the namePrefix

* Remove the PrefixSuffixTransformer from the list of builtin transformers

* Add a multi-transformer to builtinhelpers.TransformFactories

* Remove the implementation of the prefixsuffixtransformer.PrefixSuffixTransformer

* Resolve style and format related feedback from the pull request

* Add test to test the legacy PrefixSuffixTransformer for BC purposes
2021-12-22 12:01:06 -08:00

167 lines
3.0 KiB
Go

// Copyright 2021 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package main_test
import (
"testing"
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
)
func TestSuffixTransformer(t *testing.T) {
th := kusttest_test.MakeEnhancedHarness(t).
PrepBuiltin("SuffixTransformer")
defer th.Reset()
rm := th.LoadAndRunTransformer(`
apiVersion: builtin
kind: SuffixTransformer
metadata:
name: notImportantHere
suffix: -pie
fieldSpecs:
- path: metadata/name
`, `
apiVersion: v1
kind: Namespace
metadata:
name: apple
---
apiVersion: v1
kind: Service
metadata:
name: apple
spec:
ports:
- port: 7002
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: crd
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: apiservice
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cm
`)
th.AssertActualEqualsExpected(rm, `
apiVersion: v1
kind: Namespace
metadata:
name: apple
---
apiVersion: v1
kind: Service
metadata:
annotations:
internal.config.kubernetes.io/previousKinds: Service
internal.config.kubernetes.io/previousNames: apple
internal.config.kubernetes.io/previousNamespaces: default
internal.config.kubernetes.io/suffixes: -pie
name: apple-pie
spec:
ports:
- port: 7002
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: crd
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: apiservice
---
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
internal.config.kubernetes.io/previousKinds: ConfigMap
internal.config.kubernetes.io/previousNames: cm
internal.config.kubernetes.io/previousNamespaces: default
internal.config.kubernetes.io/suffixes: -pie
name: cm-pie
`)
rm = th.LoadAndRunTransformer(`
apiVersion: builtin
kind: SuffixTransformer
metadata:
name: notImportantHere
suffix: -test
fieldSpecs:
- kind: Deployment
path: metadata/name
- kind: Deployment
path: spec/template/spec/containers/name
`, `
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment
spec:
template:
spec:
containers:
- image: myapp
name: main
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: crd
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: apiservice
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cm
`)
th.AssertActualEqualsExpected(rm, `
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
internal.config.kubernetes.io/previousKinds: Deployment
internal.config.kubernetes.io/previousNames: deployment
internal.config.kubernetes.io/previousNamespaces: default
internal.config.kubernetes.io/suffixes: -test
name: deployment-test
spec:
template:
spec:
containers:
- image: myapp
name: main-test
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: crd
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: apiservice
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cm
`)
}