From 5dae7d84e6e11fff27eac7d572c81de97281beb4 Mon Sep 17 00:00:00 2001 From: Emmanuel T Odeke Date: Mon, 30 Oct 2023 14:06:56 -0700 Subject: [PATCH] test(cosmovisor): improve TestParseUpgradeInfoFile with substring assertions (#18262) Co-authored-by: Marko --- tools/cosmovisor/scanner.go | 4 ++-- tools/cosmovisor/scanner_test.go | 24 +++++++++---------- .../testdata/upgrade-files/f3-empty.json | 1 - 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/tools/cosmovisor/scanner.go b/tools/cosmovisor/scanner.go index f67692751d..af8774949d 100644 --- a/tools/cosmovisor/scanner.go +++ b/tools/cosmovisor/scanner.go @@ -189,7 +189,7 @@ func parseUpgradeInfoFile(filename string, disableRecase bool) (upgradetypes.Pla } if len(f) == 0 { - return upgradetypes.Plan{}, errors.New("empty upgrade-info.json") + return upgradetypes.Plan{}, fmt.Errorf("empty upgrade-info.json in %q", filename) } var upgradePlan upgradetypes.Plan @@ -207,5 +207,5 @@ func parseUpgradeInfoFile(filename string, disableRecase bool) (upgradetypes.Pla upgradePlan.Name = strings.ToLower(upgradePlan.Name) } - return upgradePlan, err + return upgradePlan, nil } diff --git a/tools/cosmovisor/scanner_test.go b/tools/cosmovisor/scanner_test.go index 02ece86218..3f110703a0 100644 --- a/tools/cosmovisor/scanner_test.go +++ b/tools/cosmovisor/scanner_test.go @@ -14,67 +14,64 @@ func TestParseUpgradeInfoFile(t *testing.T) { filename string expectUpgrade upgradetypes.Plan disableRecase bool - expectErr bool + expectErr string }{ { filename: "f1-good.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{Name: "upgrade1", Info: "some info", Height: 123}, - expectErr: false, }, { filename: "f2-normalized-name.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{Name: "upgrade2", Info: "some info", Height: 125}, - expectErr: false, }, { filename: "f2-normalized-name.json", disableRecase: true, expectUpgrade: upgradetypes.Plan{Name: "Upgrade2", Info: "some info", Height: 125}, - expectErr: false, }, { filename: "f2-bad-type.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "cannot unmarshal number into Go struct", }, { filename: "f2-bad-type-2.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "height must be greater than 0: invalid request", }, { filename: "f3-empty.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "empty upgrade-info.json in", }, { filename: "f4-empty-obj.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "invalid upgrade-info.json content: name cannot be empty", }, { filename: "f5-partial-obj-1.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "height must be greater than 0", }, { filename: "f5-partial-obj-2.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "name cannot be empty: invalid request", }, { - filename: "unknown.json", + filename: "non-existent.json", disableRecase: false, expectUpgrade: upgradetypes.Plan{}, - expectErr: true, + expectErr: "no such file or directory", }, } @@ -83,8 +80,9 @@ func TestParseUpgradeInfoFile(t *testing.T) { t.Run(tc.filename, func(t *testing.T) { require := require.New(t) ui, err := parseUpgradeInfoFile(filepath.Join(".", "testdata", "upgrade-files", tc.filename), tc.disableRecase) - if tc.expectErr { + if tc.expectErr != "" { require.Error(err) + require.Contains(err.Error(), tc.expectErr) } else { require.NoError(err) require.Equal(tc.expectUpgrade, ui) diff --git a/tools/cosmovisor/testdata/upgrade-files/f3-empty.json b/tools/cosmovisor/testdata/upgrade-files/f3-empty.json index 8b13789179..e69de29bb2 100644 --- a/tools/cosmovisor/testdata/upgrade-files/f3-empty.json +++ b/tools/cosmovisor/testdata/upgrade-files/f3-empty.json @@ -1 +0,0 @@ -