1package kubernetes
2
3import (
4	"bytes"
5	"testing"
6	"time"
7
8	composetypes "github.com/docker/cli/cli/compose/types"
9	"gotest.tools/v3/golden"
10)
11
12func TestWarnings(t *testing.T) {
13	duration := composetypes.Duration(5 * time.Second)
14	attempts := uint64(3)
15	config := &composetypes.Config{
16		Version: "3.4",
17		Services: []composetypes.ServiceConfig{
18			{
19				Name: "front",
20				Build: composetypes.BuildConfig{
21					Context: "ignored",
22				},
23				ContainerName:  "ignored",
24				CgroupParent:   "ignored",
25				CredentialSpec: composetypes.CredentialSpecConfig{File: "ignored"},
26				DependsOn:      []string{"ignored"},
27				Deploy: composetypes.DeployConfig{
28					UpdateConfig: &composetypes.UpdateConfig{
29						Delay:           composetypes.Duration(5 * time.Second),
30						FailureAction:   "rollback",
31						Monitor:         composetypes.Duration(10 * time.Second),
32						MaxFailureRatio: 0.5,
33					},
34					RestartPolicy: &composetypes.RestartPolicy{
35						Delay:       &duration,
36						MaxAttempts: &attempts,
37						Window:      &duration,
38					},
39				},
40				Devices:       []string{"ignored"},
41				DNSSearch:     []string{"ignored"},
42				DNS:           []string{"ignored"},
43				DomainName:    "ignored",
44				EnvFile:       []string{"ignored"},
45				Expose:        []string{"80"},
46				ExternalLinks: []string{"ignored"},
47				Image:         "dockerdemos/front",
48				Links:         []string{"ignored"},
49				Logging:       &composetypes.LoggingConfig{Driver: "syslog"},
50				MacAddress:    "ignored",
51				Networks:      map[string]*composetypes.ServiceNetworkConfig{"private": {}},
52				NetworkMode:   "ignored",
53				Restart:       "ignored",
54				SecurityOpt:   []string{"ignored"},
55				StopSignal:    "ignored",
56				Ulimits:       map[string]*composetypes.UlimitsConfig{"nproc": {Hard: 65535}},
57				User:          "ignored",
58				Volumes: []composetypes.ServiceVolumeConfig{
59					{
60						Type: "bind",
61						Bind: &composetypes.ServiceVolumeBind{Propagation: "ignored"},
62					},
63					{
64						Type:   "volume",
65						Volume: &composetypes.ServiceVolumeVolume{NoCopy: true},
66					},
67				},
68			},
69		},
70		Networks: map[string]composetypes.NetworkConfig{
71			"global": {},
72		},
73	}
74	var buf bytes.Buffer
75	warnUnsupportedFeatures(&buf, config)
76	warnings := buf.String()
77	golden.Assert(t, warnings, "warnings.golden")
78}
79