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 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()) }) } }