(t *testing.T)
| 587 | } |
| 588 | |
| 589 | func TestStructuredOutputModify(t *testing.T) { |
| 590 | ansi.DisableColors(true) |
| 591 | opts := &Options{OutputFormat: "structured"} |
| 592 | oldManifest := ` |
| 593 | apiVersion: apps/v1 |
| 594 | kind: Deployment |
| 595 | metadata: |
| 596 | name: web |
| 597 | namespace: prod |
| 598 | spec: |
| 599 | replicas: 2 |
| 600 | template: |
| 601 | spec: |
| 602 | containers: |
| 603 | - name: app |
| 604 | image: demo:v1 |
| 605 | ` |
| 606 | newManifest := ` |
| 607 | apiVersion: apps/v1 |
| 608 | kind: Deployment |
| 609 | metadata: |
| 610 | name: web |
| 611 | namespace: prod |
| 612 | spec: |
| 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 | } |
nothing calls this directly
no test coverage detected