package normalizer import ( "testing" "sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/yaml" ) var data1 = `apiVersion: apps/v1 kind: Deployment metadata: name: ctlfish namespace: ctlfish spec: replicas: 1 spec: serviceAccountName: agent-sa resources: limits: cpu: 500 memory: "246Mi" volumes: - name: config-volume configMap: name: ctlfish-config ` var quotedData1 = `apiVersion: apps/v1 kind: Deployment metadata: name: ctlfish namespace: ctlfish spec: replicas: 1 spec: serviceAccountName: agent-sa resources: limits: cpu: "500" memory: "246Mi" volumes: - name: config-volume configMap: name: ctlfish-config ` var data2 = `apiVersion: v1 kind: test spec: name: Bar limits: cpu: 1 --- apiVersion: v1 kind: test spec: name: Baz limits: cpu: '2' resource: limits: cpu: 2 --- apiVersion: v1 kind: test spec: name: Foo ` var quotedData2 = `apiVersion: v1 kind: test spec: name: Bar limits: cpu: "1" --- apiVersion: v1 kind: test spec: name: Baz limits: cpu: "2" resource: limits: cpu: "2" --- apiVersion: v1 kind: test spec: name: Foo ` // Test single node input for quoteCPULimitsForNodes func TestConvertLimitsForSingleNode(t *testing.T) { obj, err := yaml.Parse(data1) if err != nil { t.Fatal(err) } input := []*yaml.RNode{obj} quoteCPULimitsForNodes(input) str, err := input[0].String() if err != nil { t.Fatal(err) } if str != quotedData1 { t.Fatal("test data1 doesn't match quotedData1") } } // Test nultiple nodes input for quoteCPULimitsForNodes func TestConvertLimitsForNodes(t *testing.T) { nodes, err := kio.ParseAll(data2) if err != nil { t.Fatal(err) } else if len(nodes) != 3 { t.Fatalf("Didn't parse into 3 nodes. Got %d", len(nodes)) } quoteCPULimitsForNodes(nodes) str, err := kio.StringAll(nodes) if err != nil { t.Fatal(err) } if str != quotedData2 { t.Fatal("test data2 doesn't match quotedData2") } }