Skip to content

Commit 033f8a1

Browse files
committed
cli/compose/convert: use test-table for restart-policy tests
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent a6d013f commit 033f8a1

1 file changed

Lines changed: 43 additions & 26 deletions

File tree

cli/compose/convert/service_test.go

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,35 +18,52 @@ import (
1818
is "gotest.tools/v3/assert/cmp"
1919
)
2020

21-
func TestConvertRestartPolicyFromNone(t *testing.T) {
22-
policy, err := convertRestartPolicy("no", nil)
23-
assert.NilError(t, err)
24-
assert.Check(t, is.DeepEqual((*swarm.RestartPolicy)(nil), policy))
25-
}
26-
27-
func TestConvertRestartPolicyFromUnknown(t *testing.T) {
28-
_, err := convertRestartPolicy("unknown", nil)
29-
assert.Error(t, err, "unknown restart policy: unknown")
30-
}
31-
32-
func TestConvertRestartPolicyFromAlways(t *testing.T) {
33-
policy, err := convertRestartPolicy("always", nil)
34-
expected := &swarm.RestartPolicy{
35-
Condition: swarm.RestartPolicyConditionAny,
21+
func TestConvertRestartPolicy(t *testing.T) {
22+
attempts := uint64(4)
23+
tests := []struct {
24+
input string
25+
expected *swarm.RestartPolicy
26+
expError string
27+
}{
28+
{},
29+
{
30+
input: "no",
31+
},
32+
{
33+
input: "unknown",
34+
expError: "unknown restart policy: unknown",
35+
},
36+
{
37+
input: "always",
38+
expected: &swarm.RestartPolicy{
39+
Condition: swarm.RestartPolicyConditionAny,
40+
},
41+
},
42+
{
43+
input: "on-failure:4",
44+
expected: &swarm.RestartPolicy{
45+
Condition: swarm.RestartPolicyConditionOnFailure,
46+
MaxAttempts: &attempts,
47+
},
48+
},
3649
}
37-
assert.NilError(t, err)
38-
assert.Check(t, is.DeepEqual(expected, policy))
39-
}
4050

41-
func TestConvertRestartPolicyFromFailure(t *testing.T) {
42-
policy, err := convertRestartPolicy("on-failure:4", nil)
43-
attempts := uint64(4)
44-
expected := &swarm.RestartPolicy{
45-
Condition: swarm.RestartPolicyConditionOnFailure,
46-
MaxAttempts: &attempts,
51+
for _, tc := range tests {
52+
name := tc.input
53+
if name == "" {
54+
name = "empty"
55+
}
56+
t.Run(name, func(t *testing.T) {
57+
policy, err := convertRestartPolicy(tc.input, nil)
58+
if tc.expError != "" {
59+
assert.Check(t, is.ErrorContains(err, tc.expError))
60+
assert.Check(t, is.Nil(policy))
61+
return
62+
}
63+
assert.NilError(t, err)
64+
assert.Check(t, is.DeepEqual(policy, tc.expected))
65+
})
4766
}
48-
assert.NilError(t, err)
49-
assert.Check(t, is.DeepEqual(expected, policy))
5067
}
5168

5269
func strPtr(val string) *string {

0 commit comments

Comments
 (0)