(t *testing.T)
| 31 | ) |
| 32 | |
| 33 | func 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"), |
nothing calls this directly
no test coverage detected