MCPcopy Create free account
hub / github.com/docker/compose / TestPreStartHookRunsOnceForScaledService

Function TestPreStartHookRunsOnceForScaledService

pkg/e2e/hooks_test.go:323–341  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

321}
322
323func TestPreStartHookRunsOnceForScaledService(t *testing.T) {
324 c := NewParallelCLI(t)
325 const (
326 projectName = "hooks-pre-start-scaled"
327 composeFile = "fixtures/pre_start/scaled/compose.yaml"
328 )
329
330 t.Cleanup(func() {
331 c.RunDockerComposeCmd(t, "-f", composeFile, "--project-name", projectName, "down", "-v", "--remove-orphans", "-t", "0")
332 })
333
334 c.RunDockerComposeCmd(t, "-f", composeFile, "--project-name", projectName, "up", "-d", "--wait")
335
336 // per_replica: false (default) → hook must run ONCE for the whole service,
337 // even with deploy.replicas: 2.
338 probe := c.RunDockerCmd(t, "run", "--rm", "-v", projectName+"_data:/mnt", "alpine", "wc", "-l", "/mnt/log")
339 assert.Assert(t, strings.HasPrefix(strings.TrimSpace(probe.Stdout()), "1 "),
340 "expected hook to run exactly once across replicas, got: %q", probe.Stdout())
341}

Callers

nothing calls this directly

Calls 3

NewParallelCLIFunction · 0.85
RunDockerComposeCmdMethod · 0.80
RunDockerCmdMethod · 0.80

Tested by

no test coverage detected