Skip to content

Commit

Permalink
Refactor removed_api_tests to tests against sorted strings to avoid f…
Browse files Browse the repository at this point in the history
…lakiness (#245)

* Revert "fix removed_apis_test"

This reverts commit beb9613.

* refactor removed_apis_test to test on sorted error strings to remove flakiness

Signed-off-by: perdasilva <perdasilva@redhat.com>
  • Loading branch information
perdasilva committed Jun 20, 2022
1 parent 0209b8b commit cb9dc0e
Showing 1 changed file with 25 additions and 3 deletions.
28 changes: 25 additions & 3 deletions pkg/validation/internal/removed_apis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package internal

import (
"reflect"
"sort"
"strings"
"testing"

"github.com/operator-framework/api/pkg/manifests"
Expand Down Expand Up @@ -281,20 +283,40 @@ func TestValidateDeprecatedAPIS(t *testing.T) {
require.Equal(t, tt.wantWarning, len(warnsResult) > 0)
if tt.wantWarning {
require.Equal(t, len(tt.warnStrings), len(warnsResult))
// testing against sorted strings to address flakiness on the order
// of APIs listed
sortedWarnStrings := sortStringSlice(tt.warnStrings)
for _, w := range warnsResult {
wString := w.Error()
require.Contains(t, tt.warnStrings, wString)
require.Contains(t, sortedWarnStrings, sortString(wString))
}
}

require.Equal(t, tt.wantError, len(errsResult) > 0)
if tt.wantError {
require.Equal(t, len(tt.errStrings), len(errsResult))
// testing against sorted strings to address flakiness on the order
// of APIs listed
sortedErrStrings := sortStringSlice(tt.errStrings)
for _, err := range errsResult {
errString := err.Error()
require.Contains(t, tt.errStrings, errString)
errString := sortString(err.Error())
require.Contains(t, sortedErrStrings, errString)
}
}
})
}
}

func sortString(str string) string {
split := strings.Split(str, "")
sort.Strings(split)
return strings.Join(split, "")
}

func sortStringSlice(slice []string) []string {
var newSlice []string
for _, str := range slice {
newSlice = append(newSlice, sortString(str))
}
return newSlice
}

0 comments on commit cb9dc0e

Please sign in to comment.