77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
package model
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/shcizo/package-updater/internal/protocol"
|
|
)
|
|
|
|
func TestLocationKey(t *testing.T) {
|
|
cases := []struct {
|
|
name, agentKey, want string
|
|
}{
|
|
{"compose is per agent", "compose|slusk|web", "compose|7|slusk|web"},
|
|
{"container is per agent", "container|adhoc", "container|7|adhoc"},
|
|
{"swarm is per cluster", "swarm|gitea_gitea", "swarm|cluster-1|gitea_gitea"},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
assert.Equal(t, c.want, LocationKey(7, "cluster-1", c.agentKey))
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDisplayName(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
svc Service
|
|
want string
|
|
}{
|
|
{"compose", Service{Kind: protocol.KindCompose, ComposeProject: "slusk", ComposeService: "web"}, "slusk/web"},
|
|
{"swarm", Service{Kind: protocol.KindSwarm, SwarmService: "gitea_gitea"}, "gitea_gitea"},
|
|
{"container", Service{Kind: protocol.KindContainer, ContainerName: "adhoc"}, "adhoc"},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
assert.Equal(t, c.want, c.svc.DisplayName())
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestImageVersionRef(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
v ImageVersion
|
|
want string
|
|
}{
|
|
{"tag and digest", ImageVersion{Repo: "r/x", Tag: "1", Digest: "sha256:a"}, "r/x:1@sha256:a"},
|
|
{"tag only", ImageVersion{Repo: "r/x", Tag: "1"}, "r/x:1"},
|
|
{"digest only", ImageVersion{Repo: "r/x", Digest: "sha256:a"}, "r/x@sha256:a"},
|
|
{"registry port", ImageVersion{Repo: "localhost:5000/x", Tag: "1"}, "localhost:5000/x:1"},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
assert.Equal(t, c.want, c.v.Ref())
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestJob_Active(t *testing.T) {
|
|
cases := []struct {
|
|
status JobStatus
|
|
want bool
|
|
}{
|
|
{JobQueued, true},
|
|
{JobRunning, true},
|
|
{JobSucceeded, false},
|
|
{JobFailed, false},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(string(c.status), func(t *testing.T) {
|
|
assert.Equal(t, c.want, Job{Status: c.status}.Active())
|
|
})
|
|
}
|
|
}
|