MCPcopy
hub / github.com/portainer/portainer / Test_aggregateStatus

Function Test_aggregateStatus

pkg/libstack/swarm/swarm_unit_test.go:20–80  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

18)
19
20func Test_aggregateStatus(t *testing.T) {
21 t.Parallel()
22
23 tests := []struct {
24 name string
25 statuses []libstack.Status
26 expectedStatus libstack.Status
27 }{
28 {
29 name: "empty returns removed",
30 statuses: []libstack.Status{},
31 expectedStatus: libstack.StatusRemoved,
32 },
33 {
34 name: "all running",
35 statuses: []libstack.Status{libstack.StatusRunning, libstack.StatusRunning},
36 expectedStatus: libstack.StatusRunning,
37 },
38 {
39 name: "all completed",
40 statuses: []libstack.Status{libstack.StatusCompleted, libstack.StatusCompleted},
41 expectedStatus: libstack.StatusCompleted,
42 },
43 {
44 name: "mix of running and completed",
45 statuses: []libstack.Status{libstack.StatusRunning, libstack.StatusCompleted},
46 expectedStatus: libstack.StatusRunning,
47 },
48 {
49 name: "error takes priority",
50 statuses: []libstack.Status{libstack.StatusRunning, libstack.StatusError},
51 expectedStatus: libstack.StatusError,
52 },
53 {
54 name: "starting takes priority over running",
55 statuses: []libstack.Status{libstack.StatusRunning, libstack.StatusStarting},
56 expectedStatus: libstack.StatusStarting,
57 },
58 {
59 name: "removing",
60 statuses: []libstack.Status{libstack.StatusRemoving, libstack.StatusRunning},
61 expectedStatus: libstack.StatusRemoving,
62 },
63 {
64 name: "all stopped",
65 statuses: []libstack.Status{libstack.StatusStopped, libstack.StatusStopped},
66 expectedStatus: libstack.StatusStopped,
67 },
68 {
69 name: "all removed",
70 statuses: []libstack.Status{libstack.StatusRemoved, libstack.StatusRemoved},
71 expectedStatus: libstack.StatusRemoved,
72 },
73 }
74
75 for _, tt := range tests {
76 t.Run(tt.name, func(t *testing.T) {
77 require.Equal(t, tt.expectedStatus, aggregateStatus(tt.statuses))

Callers

nothing calls this directly

Calls 3

aggregateStatusFunction · 0.85
EqualMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected