(t *testing.T)
| 810 | } |
| 811 | |
| 812 | func TestStructuredOutputAdditionalScenarios(t *testing.T) { |
| 813 | ansi.DisableColors(true) |
| 814 | opts := &Options{OutputFormat: "structured"} |
| 815 | |
| 816 | t.Run("EmptyManifestHandling", func(t *testing.T) { |
| 817 | emptyManifest := `` |
| 818 | validManifest := ` |
| 819 | apiVersion: v1 |
| 820 | kind: Pod |
| 821 | metadata: |
| 822 | name: test |
| 823 | namespace: default |
| 824 | ` |
| 825 | oldIndex := manifest.Parse([]byte(emptyManifest), "default", true) |
| 826 | newIndex := manifest.Parse([]byte(validManifest), "default", true) |
| 827 | |
| 828 | var buf bytes.Buffer |
| 829 | changed := Manifests(oldIndex, newIndex, opts, &buf) |
| 830 | require.True(t, changed) |
| 831 | |
| 832 | var entries []StructuredEntry |
| 833 | require.NoError(t, json.Unmarshal(buf.Bytes(), &entries)) |
| 834 | require.Len(t, entries, 1) |
| 835 | require.Equal(t, "ADD", entries[0].ChangeType) |
| 836 | require.False(t, entries[0].ResourceStatus.OldExists) |
| 837 | require.True(t, entries[0].ResourceStatus.NewExists) |
| 838 | }) |
| 839 | |
| 840 | t.Run("NullYAMLDocument", func(t *testing.T) { |
| 841 | nullManifest := `null` |
| 842 | validManifest := ` |
| 843 | apiVersion: v1 |
| 844 | kind: Service |
| 845 | metadata: |
| 846 | name: test |
| 847 | namespace: default |
| 848 | ` |
| 849 | oldIndex := manifest.Parse([]byte(nullManifest), "default", true) |
| 850 | newIndex := manifest.Parse([]byte(validManifest), "default", true) |
| 851 | |
| 852 | var buf bytes.Buffer |
| 853 | changed := Manifests(oldIndex, newIndex, opts, &buf) |
| 854 | require.True(t, changed) |
| 855 | |
| 856 | var entries []StructuredEntry |
| 857 | require.NoError(t, json.Unmarshal(buf.Bytes(), &entries)) |
| 858 | require.Len(t, entries, 1) |
| 859 | require.Equal(t, "ADD", entries[0].ChangeType) |
| 860 | }) |
| 861 | |
| 862 | t.Run("ComplexNestedStructuresForJSONPatch", func(t *testing.T) { |
| 863 | oldManifest := ` |
| 864 | apiVersion: v1 |
| 865 | kind: ConfigMap |
| 866 | metadata: |
| 867 | name: complex |
| 868 | namespace: default |
| 869 | labels: |
nothing calls this directly
no test coverage detected