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

Function TestPreStart_ImageFallsBackToBuiltImage

pkg/compose/pre_start_test.go:154–183  ·  pkg/compose/pre_start_test.go::TestPreStart_ImageFallsBackToBuiltImage
(t *testing.T)

Source from the content-addressed store, hash-verified

152}
153
154func TestPreStart_ImageFallsBackToBuiltImage(t *testing.T) {
155 tested, apiClient := newPreStartTestService(t)
156
157 project := &types.Project{Name: "demo"}
158 // Service with no explicit image (build-only); hook image also empty.
159 service := types.ServiceConfig{
160 Name: "web",
161 PreStart: []types.ServiceHook{
162 {Command: types.ShellCommand{"echo", "hi"}},
163 },
164 }
165 ctr := container.Summary{ID: "service-ctr-id"}
166
167 var gotImage string
168 apiClient.EXPECT().ContainerCreate(gomock.Any(), gomock.Any()).
169 DoAndReturn(func(_ any, opts client.ContainerCreateOptions) (client.ContainerCreateResult, error) {
170 gotImage = opts.Config.Image
171 return client.ContainerCreateResult{ID: "hook-1"}, nil
172 })
173 apiClient.EXPECT().ContainerStart(gomock.Any(), "hook-1", gomock.Any()).
174 Return(client.ContainerStartResult{}, nil)
175 apiClient.EXPECT().ContainerLogs(gomock.Any(), "hook-1", gomock.Any()).
176 Return(emptyLogs(), nil)
177 apiClient.EXPECT().ContainerWait(gomock.Any(), "hook-1", gomock.Any()).
178 Return(waitResultExit(0))
179
180 err := tested.runPreStart(t.Context(), project, service, ctr, func(api.ContainerEvent) {})
181 assert.NilError(t, err)
182 assert.Equal(t, gotImage, api.GetImageNameOrDefault(service, project.Name))
183}
184
185func TestPreStart_ExplicitHookImageUsed(t *testing.T) {
186 tested, apiClient := newPreStartTestService(t)

Callers

nothing calls this directly

Calls 10

GetImageNameOrDefaultFunction · 0.92
newPreStartTestServiceFunction · 0.85
emptyLogsFunction · 0.85
waitResultExitFunction · 0.85
runPreStartMethod · 0.80
ContainerCreateMethod · 0.45
EXPECTMethod · 0.45
ContainerStartMethod · 0.45
ContainerLogsMethod · 0.45
ContainerWaitMethod · 0.45

Tested by

no test coverage detected