mirror of
https://github.com/stakater/Reloader.git
synced 2026-05-17 14:16:39 +00:00
158 lines
3.3 KiB
Go
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", // Note: digest handling is limited
|
|
},
|
|
{
|
|
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)
|
|
}
|
|
})
|
|
}
|
|
}
|