diff --git a/state/state_test.go b/state/state_test.go index 04170232..cf3272f1 100644 --- a/state/state_test.go +++ b/state/state_test.go @@ -492,6 +492,11 @@ func (helm *mockHelmExec) UpdateRepo() error { return nil } func (helm *mockHelmExec) SyncRelease(name, chart string, flags ...string) error { + if strings.Contains(name, "error") { + return errors.New("error") + } + helm.releases = append(helm.releases, name) + helm.charts = append(helm.charts, chart) return nil } func (helm *mockHelmExec) DiffRelease(name, chart string, flags ...string) error { @@ -564,6 +569,38 @@ func TestHelmState_SyncRepos(t *testing.T) { } } + +func TestHelmState_SyncReleases(t *testing.T) { + tests := []struct { + name string + releases []ReleaseSpec + helm *mockHelmExec + wantReleases []string + }{ + { + name: "normal release", + releases: []ReleaseSpec{ + { + Name: "releaseName", + Chart: "foo", + }, + }, + helm: &mockHelmExec{}, + wantReleases: []string{"releaseName"}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + state := &HelmState{ + Releases: tt.releases, + } + if _ = state.SyncReleases(tt.helm, []string{}, 1); !reflect.DeepEqual(tt.helm.releases, tt.wantReleases) { + t.Errorf("HelmState.SyncReleases() for [%s] = %v, want %v", tt.name, tt.helm.releases, tt.wantReleases) + } + }) + } +} + func TestHelmState_UpdateDeps(t *testing.T) { state := &HelmState{ BaseChartPath: "/src",