From d9f9d545d5c12d0b201a0abc1a7449703b3947ce Mon Sep 17 00:00:00 2001 From: Philip Laine Date: Tue, 28 Jan 2025 13:03:15 +0100 Subject: [PATCH] Extend tests for distribution Signed-off-by: Philip Laine --- CHANGELOG.md | 2 ++ pkg/registry/distribution_test.go | 44 +++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 114844ac..d7f6b290 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [#717](https://github.com/spegel-org/spegel/pull/717) Extend tests for distribution. + ### Changed ### Deprecated diff --git a/pkg/registry/distribution_test.go b/pkg/registry/distribution_test.go index b932f9ab..78b0856f 100644 --- a/pkg/registry/distribution_test.go +++ b/pkg/registry/distribution_test.go @@ -7,6 +7,42 @@ import ( "github.com/stretchr/testify/require" ) +func TestReference(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + refName string + expected bool + }{ + { + name: "with latest tag", + refName: "ghcr.io/spegel-org/spegel:latest", + expected: true, + }, + { + name: "no latest tag", + refName: "ghcr.io/spegel-org/spegel:v1.0.0", + expected: false, + }, + { + name: "empty name", + refName: "", + expected: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + ref := reference{ + name: tt.refName, + } + require.Equal(t, tt.expected, ref.hasLatestTag()) + }) + } +} + func TestParsePathComponents(t *testing.T) { t.Parallel() @@ -26,6 +62,14 @@ func TestParsePathComponents(t *testing.T) { expectedDgst: "", expectedRefKind: referenceKindManifest, }, + { + name: "valid manifest digest", + registry: "docker.io", + path: "/v2/library/nginx/manifests/sha256:0a404ca8e119d061cdb2dceee824c914cdc69b31bc7b5956ef5a520436a80d39", + expectedName: "", + expectedDgst: digest.Digest("sha256:0a404ca8e119d061cdb2dceee824c914cdc69b31bc7b5956ef5a520436a80d39"), + expectedRefKind: referenceKindManifest, + }, { name: "valid blob digest", registry: "docker.io",