| 646 | } |
| 647 | |
| 648 | func TestStructuredOutputAddAndRemove(t *testing.T) { |
| 649 | ansi.DisableColors(true) |
| 650 | opts := &Options{OutputFormat: "structured"} |
| 651 | newManifest := ` |
| 652 | apiVersion: batch/v1 |
| 653 | kind: Job |
| 654 | metadata: |
| 655 | name: migrate |
| 656 | namespace: ops |
| 657 | spec: {} |
| 658 | ` |
| 659 | newIndex := manifest.Parse([]byte(newManifest), "ops", true) |
| 660 | |
| 661 | var buf bytes.Buffer |
| 662 | changed := Manifests(map[string]*manifest.MappingResult{}, newIndex, opts, &buf) |
| 663 | require.True(t, changed) |
| 664 | |
| 665 | var entries []StructuredEntry |
| 666 | require.NoError(t, json.Unmarshal(buf.Bytes(), &entries)) |
| 667 | require.Len(t, entries, 1) |
| 668 | require.Equal(t, "ADD", entries[0].ChangeType) |
| 669 | require.True(t, entries[0].ResourceStatus.NewExists) |
| 670 | require.False(t, entries[0].ResourceStatus.OldExists) |
| 671 | |
| 672 | // Now test removal |
| 673 | buf.Reset() |
| 674 | changed = Manifests(newIndex, map[string]*manifest.MappingResult{}, opts, &buf) |
| 675 | require.True(t, changed) |
| 676 | require.NoError(t, json.Unmarshal(buf.Bytes(), &entries)) |
| 677 | require.Len(t, entries, 1) |
| 678 | require.Equal(t, "REMOVE", entries[0].ChangeType) |
| 679 | require.True(t, entries[0].ResourceStatus.OldExists) |
| 680 | require.False(t, entries[0].ResourceStatus.NewExists) |
| 681 | } |
| 682 | |
| 683 | func TestStructuredOutputSuppressedKind(t *testing.T) { |
| 684 | ansi.DisableColors(true) |