diff --git a/Makefile b/Makefile index d5b1f06..4c6d8d2 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,8 @@ tidy: go mod tidy generate: deepcopy-gen - touch ./tmp/deepcopy-gen-boilerplate.go.txt + @mkdir -p ./tmp + @touch ./tmp/deepcopy-gen-boilerplate.go.txt deepcopy-gen -h ./tmp/deepcopy-gen-boilerplate.go.txt -i ./pkg/types # Run tests diff --git a/pkg/versions/versions.go b/pkg/versions/versions.go index 200bf50..6ad9416 100644 --- a/pkg/versions/versions.go +++ b/pkg/versions/versions.go @@ -17,9 +17,16 @@ const ( ) func IsNewerThan(v1 string, v2 string) bool { - return semver.Compare(v1, v2) == 1 + return semver.Compare(sanitize(v1), sanitize(v2)) == 1 } func IsSame(v1 string, v2 string) bool { - return semver.Compare(v1, v2) == 0 + return semver.Compare(sanitize(v1), sanitize(v2)) == 0 +} + +func sanitize(v string) string { + if v == "" || v[0] == 'v' { + return v + } + return "v" + v } diff --git a/pkg/versions/versions_suite_test.go b/pkg/versions/versions_suite_test.go new file mode 100644 index 0000000..bfe1546 --- /dev/null +++ b/pkg/versions/versions_suite_test.go @@ -0,0 +1,13 @@ +package versions_test + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestTypes(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Types Suite") +} diff --git a/pkg/versions/versions_test.go b/pkg/versions/versions_test.go new file mode 100644 index 0000000..1084010 --- /dev/null +++ b/pkg/versions/versions_test.go @@ -0,0 +1,24 @@ +package versions_test + +import ( + "github.com/bakito/adguardhome-sync/pkg/versions" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +var _ = Describe("Versions", func() { + Context("IsNewerThan", func() { + It("should correctly parse json", func() { + Ω(versions.IsNewerThan("v0.106.10", "v0.106.9")).Should(BeTrue()) + Ω(versions.IsNewerThan("v0.106.9", "v0.106.10")).Should(BeFalse()) + Ω(versions.IsNewerThan("v0.106.10", "0.106.9")).Should(BeTrue()) + Ω(versions.IsNewerThan("v0.106.9", "0.106.10")).Should(BeFalse()) + }) + }) + Context("IsSame", func() { + It("should be the same version", func() { + Ω(versions.IsSame("v0.106.9", "v0.106.9")).Should(BeTrue()) + Ω(versions.IsSame("0.106.9", "v0.106.9")).Should(BeTrue()) + }) + }) +})