fix tests

Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
yxxhero 2023-09-15 08:44:27 +08:00
parent bbe641b9a0
commit cbfd8dfd27
1 changed files with 98 additions and 11 deletions

View File

@ -2755,8 +2755,9 @@ releases:
func TestApply(t *testing.T) {
type fields struct {
skipNeeds bool
includeNeeds bool
skipNeeds bool
includeNeeds bool
includeTransitiveNeeds bool
}
testcases := []struct {
name string
@ -2778,6 +2779,10 @@ func TestApply(t *testing.T) {
// complex test cases for smoke testing
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "smoke",
loc: location(),
files: map[string]string{
@ -2899,6 +2904,10 @@ backend-v2 4 Fri Nov 1 08:40:07 2019 DEPLOYED backend-3.1.0 3.1.0
// noop: no changes
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "noop",
loc: location(),
files: map[string]string{
@ -2929,6 +2938,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau
// install
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "install",
loc: location(),
files: map[string]string{
@ -2962,6 +2975,10 @@ releases:
// install with upgrade
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "install-with-upgrade-with-validation-control",
loc: location(),
files: map[string]string{
@ -3006,6 +3023,10 @@ baz 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart3-3.1.0 3.1.0 defau
// install with upgrade and --skip-diff-on-install
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "install-with-upgrade-with-skip-diff-on-install",
loc: location(),
skipDiffOnInstall: true,
@ -3050,6 +3071,10 @@ baz 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart3-3.1.0 3.1.0 defau
// upgrades
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "upgrade when foo needs bar",
loc: location(),
files: map[string]string{
@ -3073,6 +3098,10 @@ releases:
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "upgrade when bar needs foo",
loc: location(),
files: map[string]string{
@ -3096,6 +3125,10 @@ releases:
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "upgrade when foo needs bar, with ns override",
loc: location(),
ns: "testNamespace",
@ -3120,6 +3153,10 @@ releases:
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "upgrade when bar needs foo, with ns override",
loc: location(),
ns: "testNamespace",
@ -3144,6 +3181,10 @@ releases:
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "upgrade when ns1/foo needs ns2/bar",
loc: location(),
files: map[string]string{
@ -3169,6 +3210,10 @@ releases:
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "upgrade when ns2/bar needs ns1/foo",
loc: location(),
files: map[string]string{
@ -3197,6 +3242,10 @@ releases:
// deletes: deleting all releases in the correct order
//
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "delete foo and bar when foo needs bar",
loc: location(),
files: map[string]string{
@ -3231,7 +3280,11 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau
},
{
name: "delete foo and bar when bar needs foo",
loc: location(),
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
loc: location(),
files: map[string]string{
"/path/to/helmfile.yaml": `
releases:
@ -3280,6 +3333,10 @@ releases:
- bar
`,
},
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
diffs: map[exectest.DiffKey]error{
{Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2},
{Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2},
@ -3300,6 +3357,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "delete bar when foo needs bar",
loc: location(),
files: map[string]string{
@ -3334,6 +3395,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "delete foo when bar needs foo",
loc: location(),
files: map[string]string{
@ -3368,6 +3433,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau
},
},
{
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
name: "delete bar when bar needs foo",
loc: location(),
files: map[string]string{
@ -3599,9 +3668,13 @@ releases:
`,
},
selectors: []string{"app=test_non_existent"},
diffs: map[exectest.DiffKey]error{},
upgraded: []exectest.Release{},
error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile",
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
diffs: map[exectest.DiffKey]error{},
upgraded: []exectest.Release{},
error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile",
// as we check for log output, set concurrency to 1 to avoid non-deterministic test result
concurrency: 1,
log: `processing file "helmfile.yaml" in directory "."
@ -3678,6 +3751,10 @@ changing working directory back to "/path/to"
name: "unselected release in needs",
loc: location(),
selectors: []string{"name=foo"},
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
files: map[string]string{
"/path/to/helmfile.yaml": `
releases:
@ -3741,7 +3818,11 @@ changing working directory back to "/path/to"
},
{
name: "non-existent release in needs",
loc: location(),
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
loc: location(),
files: map[string]string{
"/path/to/helmfile.yaml": `
releases:
@ -3822,6 +3903,10 @@ releases:
- ns1/bar
`,
},
fields: fields{
skipNeeds: false,
includeNeeds: true,
},
diffs: map[exectest.DiffKey]error{
{Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2},
{Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2},
@ -3925,10 +4010,12 @@ changing working directory back to "/path/to"
applyErr := app.Apply(applyConfig{
// if we check log output, concurrency must be 1. otherwise the test becomes non-deterministic.
concurrency: tc.concurrency,
logger: logger,
skipDiffOnInstall: tc.skipDiffOnInstall,
skipNeeds: tc.fields.skipNeeds,
concurrency: tc.concurrency,
logger: logger,
skipDiffOnInstall: tc.skipDiffOnInstall,
skipNeeds: tc.fields.skipNeeds,
includeNeeds: tc.fields.includeNeeds,
includeTransitiveNeeds: tc.fields.includeTransitiveNeeds,
})
switch {
case tc.error == "" && applyErr != nil: