From 6d94e8eee0168ecab1e2954f4a4f1873f3f0b617 Mon Sep 17 00:00:00 2001 From: Ankita Thomas Date: Tue, 3 Nov 2020 13:37:28 -0500 Subject: [PATCH] add skippatch unit test --- pkg/registry/bundlegraphloader_test.go | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/pkg/registry/bundlegraphloader_test.go b/pkg/registry/bundlegraphloader_test.go index 102582c48..5bad751d5 100644 --- a/pkg/registry/bundlegraphloader_test.go +++ b/pkg/registry/bundlegraphloader_test.go @@ -2,6 +2,7 @@ package registry import ( "encoding/json" + "github.com/blang/semver" "testing" "github.com/stretchr/testify/assert" @@ -312,3 +313,73 @@ func TestBundleGraphLoader(t *testing.T) { }) } } + +func TestIsSkipPatchCandidate(t *testing.T) { + tests := []struct{ + name string + added string + compare string + expected bool + commutative bool + }{ + { + name: "equal versions", + added: "0.0.0", + compare: "0.0.0", + expected: false, + commutative: true, + }, + { + name: "do not accept different major/minor version", + added: "0.1.0", + compare: "0.2.0", + expected: false, + commutative: true, + }, + { + name: "accept larger patch version", + added: "0.0.1", + compare: "0.0.0", + expected: true, + }, + { + name: "accept patch version without pre-release", + added: "0.0.0", + compare: "0.0.0-1", + expected: true, + }, + { + name: "accept longer pre-release with same prefix", + added: "0.0.1-1.2", + compare: "0.0.1-1", + expected: true, + }, + { + name: "accept numerically larger pre-release", + added: "0.0.1-11", + compare: "0.0.1-2", + expected: true, + }, + { + name: "accept lexicographically larger pre-release", + added: "0.0.1-beta.1", + compare: "0.0.1-alpha.1", + expected: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + added, err := semver.Make(tt.added) + require.NoError(t, err) + compare, err := semver.Make(tt.compare) + require.NoError(t, err) + actual := isSkipPatchCandidate(added, compare) + assert.Equal(t, tt.expected, actual) + + if !tt.commutative { + reverse := isSkipPatchCandidate(compare, added) + assert.Equal(t, !tt.expected, reverse) + } + }) + } +} \ No newline at end of file