MCPcopy
hub / github.com/docker/compose / TestLocalComposeUp

Function TestLocalComposeUp

pkg/e2e/compose_test.go:33–125  ·  pkg/e2e/compose_test.go::TestLocalComposeUp
(t *testing.T)

Source from the content-addressed store, hash-verified

31)
32
33func TestLocalComposeUp(t *testing.T) {
34 // this test shares a fixture with TestCompatibility and can't run at the same time
35 c := NewCLI(t)
36
37 const projectName = "compose-e2e-demo"
38
39 t.Run("up", func(t *testing.T) {
40 c.RunDockerComposeCmd(t, "-f", "./fixtures/sentences/compose.yaml", "--project-name", projectName, "up", "-d")
41 })
42
43 t.Run("check accessing running app", func(t *testing.T) {
44 res := c.RunDockerComposeCmd(t, "-p", projectName, "ps")
45 res.Assert(t, icmd.Expected{Out: `web`})
46
47 endpoint := "http://localhost:90"
48 output := HTTPGetWithRetry(t, endpoint+"/words/noun", http.StatusOK, 2*time.Second, 20*time.Second)
49 assert.Assert(t, strings.Contains(output, `"word":`))
50
51 res = c.RunDockerCmd(t, "network", "ls")
52 res.Assert(t, icmd.Expected{Out: projectName + "_default"})
53 })
54
55 t.Run("top", func(t *testing.T) {
56 res := c.RunDockerComposeCmd(t, "-p", projectName, "top")
57 output := res.Stdout()
58 head := []string{"UID", "PID", "PPID", "C", "STIME", "TTY", "TIME", "CMD"}
59 for _, h := range head {
60 assert.Assert(t, strings.Contains(output, h), output)
61 }
62 assert.Assert(t, strings.Contains(output, `java -Xmx8m -Xms8m -jar /app/words.jar`), output)
63 assert.Assert(t, strings.Contains(output, `/dispatcher`), output)
64 })
65
66 t.Run("check compose labels", func(t *testing.T) {
67 res := c.RunDockerCmd(t, "inspect", projectName+"-web-1")
68 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.container-number": "1"`})
69 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.project": "compose-e2e-demo"`})
70 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.oneoff": "False",`})
71 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.config-hash":`})
72 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.project.config_files":`})
73 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.project.working_dir":`})
74 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.service": "web"`})
75 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.version":`})
76
77 res = c.RunDockerCmd(t, "network", "inspect", projectName+"_default")
78 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.network": "default"`})
79 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.project": `})
80 res.Assert(t, icmd.Expected{Out: `"com.docker.compose.version": `})
81 })
82
83 t.Run("check user labels", func(t *testing.T) {
84 res := c.RunDockerCmd(t, "inspect", projectName+"-web-1")
85 res.Assert(t, icmd.Expected{Out: `"my-label": "test"`})
86 })
87
88 t.Run("check healthcheck output", func(t *testing.T) {
89 c.WaitForCmdResult(t, c.NewDockerComposeCmd(t, "-p", projectName, "ps", "--format", "json"),
90 IsHealthy(projectName+"-web-1"),

Callers

nothing calls this directly

Calls 8

RunDockerComposeCmdMethod · 0.95
RunDockerCmdMethod · 0.95
WaitForCmdResultMethod · 0.95
NewDockerComposeCmdMethod · 0.95
NewCLIFunction · 0.85
HTTPGetWithRetryFunction · 0.85
IsHealthyFunction · 0.85
assertServiceStatusFunction · 0.85

Tested by

no test coverage detected