fix: address review findings for self-update (#15)
This commit is contained in:
@@ -64,6 +64,7 @@ type fakeHelper struct {
|
||||
hold bool // ContainerWait never reports an exit
|
||||
logs string // what the helper printed
|
||||
onStart func()
|
||||
state container.ContainerState // what an inspect reports; exited when empty
|
||||
|
||||
created []createdHelper
|
||||
started []string
|
||||
@@ -79,6 +80,14 @@ func (h *fakeHelper) ContainerCreate(_ context.Context, cfg *container.Config, h
|
||||
return container.CreateResponse{ID: "helper1"}, nil
|
||||
}
|
||||
|
||||
func (h *fakeHelper) ContainerInspect(context.Context, string) (container.InspectResponse, error) {
|
||||
state := h.state
|
||||
if state == "" {
|
||||
state = container.StateExited
|
||||
}
|
||||
return container.InspectResponse{ContainerJSONBase: &container.ContainerJSONBase{State: &container.State{Status: state}}}, nil
|
||||
}
|
||||
|
||||
func (h *fakeHelper) ContainerStart(_ context.Context, id string, _ container.StartOptions) error {
|
||||
h.started = append(h.started, id)
|
||||
if h.onStart != nil {
|
||||
@@ -116,6 +125,14 @@ type fakeHelperCompose struct {
|
||||
h *fakeHelper
|
||||
}
|
||||
|
||||
// ContainerInspect answers for the agent's own container ("me") like fakeCompose
|
||||
// and for any other ID like the helper.
|
||||
func (f fakeHelperCompose) ContainerInspect(ctx context.Context, id string) (container.InspectResponse, error) {
|
||||
if id == "me" {
|
||||
return f.fakeCompose.ContainerInspect(ctx, id)
|
||||
}
|
||||
return f.h.ContainerInspect(ctx, id)
|
||||
}
|
||||
func (f fakeHelperCompose) ContainerCreate(ctx context.Context, cfg *container.Config, host *container.HostConfig, n *network.NetworkingConfig, p *ocispec.Platform, name string) (container.CreateResponse, error) {
|
||||
return f.h.ContainerCreate(ctx, cfg, host, n, p, name)
|
||||
}
|
||||
@@ -528,13 +545,13 @@ func TestComposeSelfUpdate(t *testing.T) {
|
||||
assert.Equal(t, container.WaitConditionNextExit, c.helper.waitCond)
|
||||
labels := cfg.Labels
|
||||
assert.Len(t, labels, 6, "no compose labels")
|
||||
assert.Equal(t, "7", labels[protocol.LabelSelfUpdateJob])
|
||||
assert.Equal(t, pinned, labels[protocol.LabelSelfUpdateRef])
|
||||
assert.Equal(t, "2026-10-13T09:00:00Z", labels[protocol.LabelSelfUpdateStarted])
|
||||
assert.Equal(t, "updater", labels[protocol.LabelSelfUpdateProject])
|
||||
assert.Equal(t, "agent", labels[protocol.LabelSelfUpdateService])
|
||||
assert.Contains(t, labels[protocol.LabelSelfUpdateOutput], "resolved "+pinned)
|
||||
assert.Contains(t, labels[protocol.LabelSelfUpdateOutput], "$ docker "+strings.Join(withStep("pull", "agent"), " "))
|
||||
assert.Equal(t, "7", labels[labelSelfUpdateJob])
|
||||
assert.Equal(t, pinned, labels[labelSelfUpdateRef])
|
||||
assert.Equal(t, "2026-10-13T09:00:00Z", labels[labelSelfUpdateStarted])
|
||||
assert.Equal(t, "updater", labels[labelSelfUpdateProject])
|
||||
assert.Equal(t, "agent", labels[labelSelfUpdateService])
|
||||
assert.Contains(t, labels[labelSelfUpdateOutput], "resolved "+pinned)
|
||||
assert.Contains(t, labels[labelSelfUpdateOutput], "$ docker "+strings.Join(withStep("pull", "agent"), " "))
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user