MCPcopy
hub / github.com/databus23/helm-diff / TestStructuredOutputModify

Function TestStructuredOutputModify

diff/diff_test.go:589–646  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

587}
588
589func TestStructuredOutputModify(t *testing.T) {
590 ansi.DisableColors(true)
591 opts := &Options{OutputFormat: "structured"}
592 oldManifest := `
593apiVersion: apps/v1
594kind: Deployment
595metadata:
596 name: web
597 namespace: prod
598spec:
599 replicas: 2
600 template:
601 spec:
602 containers:
603 - name: app
604 image: demo:v1
605`
606 newManifest := `
607apiVersion: apps/v1
608kind: Deployment
609metadata:
610 name: web
611 namespace: prod
612spec:
613 replicas: 3
614 template:
615 spec:
616 containers:
617 - name: app
618 image: demo:v2
619`
620 oldIndex := manifest.Parse([]byte(oldManifest), "prod", true)
621 newIndex := manifest.Parse([]byte(newManifest), "prod", true)
622
623 var buf bytes.Buffer
624 changed := Manifests(oldIndex, newIndex, opts, &buf)
625 require.True(t, changed)
626
627 var entries []StructuredEntry
628 require.NoError(t, json.Unmarshal(buf.Bytes(), &entries))
629 require.Len(t, entries, 1)
630 entry := entries[0]
631 require.Equal(t, "MODIFY", entry.ChangeType)
632 require.Equal(t, "apps/v1", entry.APIVersion)
633 require.Equal(t, "Deployment", entry.Kind)
634 require.Equal(t, "prod", entry.Namespace)
635 require.Equal(t, "web", entry.Name)
636 require.Len(t, entry.Changes, 2)
637 replicasChange, ok := findChange(entry.Changes, "spec", "replicas")
638 require.True(t, ok)
639 require.InDelta(t, float64(2), replicasChange.OldValue, 0.001)
640 require.InDelta(t, float64(3), replicasChange.NewValue, 0.001)
641
642 imageChange, ok := findChange(entry.Changes, "spec.template.spec.containers[0]", "image")
643 require.True(t, ok)
644 require.Equal(t, "demo:v1", imageChange.OldValue)
645 require.Equal(t, "demo:v2", imageChange.NewValue)
646}

Callers

nothing calls this directly

Calls 3

ParseFunction · 0.92
ManifestsFunction · 0.85
findChangeFunction · 0.85

Tested by

no test coverage detected