Files
Reloader/test/e2e/utils/helm_test.go
2026-01-15 00:21:56 +01:00

158 lines
3.3 KiB
Go

package utils
import (
"testing"
)
func TestGetImageRepository(t *testing.T) {
tests := []struct {
name string
image string
expected string
}{
{
name: "full image with tag",
image: "ghcr.io/stakater/reloader:v1.0.0",
expected: "ghcr.io/stakater/reloader",
},
{
name: "image with latest tag",
image: "nginx:latest",
expected: "nginx",
},
{
name: "image without tag",
image: "ghcr.io/stakater/reloader",
expected: "ghcr.io/stakater/reloader",
},
{
name: "image with digest (not fully supported)",
image: "nginx@sha256:abc123",
expected: "nginx@sha256",
},
{
name: "simple image name",
image: "nginx",
expected: "nginx",
},
{
name: "image with port in registry",
image: "localhost:5000/myimage:v1",
expected: "localhost:5000/myimage",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := GetImageRepository(tt.image)
if result != tt.expected {
t.Errorf("GetImageRepository(%q) = %q, want %q", tt.image, result, tt.expected)
}
})
}
}
func TestGetImageTag(t *testing.T) {
tests := []struct {
name string
image string
expected string
}{
{
name: "full image with tag",
image: "ghcr.io/stakater/reloader:v1.0.0",
expected: "v1.0.0",
},
{
name: "image with latest tag",
image: "nginx:latest",
expected: "latest",
},
{
name: "image without tag",
image: "ghcr.io/stakater/reloader",
expected: "latest",
},
{
name: "simple image name",
image: "nginx",
expected: "latest",
},
{
name: "image with port in registry",
image: "localhost:5000/myimage:v1",
expected: "v1",
},
{
name: "tag with sha",
image: "myimage:sha-abc123",
expected: "sha-abc123",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := GetImageTag(tt.image)
if result != tt.expected {
t.Errorf("GetImageTag(%q) = %q, want %q", tt.image, result, tt.expected)
}
})
}
}
func TestReloaderDeploymentName(t *testing.T) {
tests := []struct {
name string
releaseName string
expected string
}{
{
name: "default release name",
releaseName: "",
expected: "reloader-reloader",
},
{
name: "custom release name",
releaseName: "my-reloader",
expected: "my-reloader-reloader",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := ReloaderDeploymentName(tt.releaseName)
if result != tt.expected {
t.Errorf("ReloaderDeploymentName(%q) = %q, want %q", tt.releaseName, result, tt.expected)
}
})
}
}
func TestReloaderPodSelector(t *testing.T) {
tests := []struct {
name string
releaseName string
expected string
}{
{
name: "default release name",
releaseName: "",
expected: "app=reloader-reloader",
},
{
name: "custom release name",
releaseName: "my-reloader",
expected: "app=my-reloader-reloader",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := ReloaderPodSelector(tt.releaseName)
if result != tt.expected {
t.Errorf("ReloaderPodSelector(%q) = %q, want %q", tt.releaseName, result, tt.expected)
}
})
}
}