TestCheckpointCreateWithOptions check both "keep-running=true/false"

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2025-02-03 11:04:40 +01:00
parent 4808d1bcd2
commit 007e88ec3d
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C

View File

@ -3,6 +3,7 @@ package checkpoint
import ( import (
"errors" "errors"
"io" "io"
"strconv"
"strings" "strings"
"testing" "testing"
@ -48,26 +49,39 @@ func TestCheckpointCreateErrors(t *testing.T) {
} }
func TestCheckpointCreateWithOptions(t *testing.T) { func TestCheckpointCreateWithOptions(t *testing.T) {
var containerID, checkpointID, checkpointDir string const (
var exit bool containerName = "container-foo"
cli := test.NewFakeCli(&fakeClient{ checkpointName = "checkpoint-bar"
checkpointCreateFunc: func(container string, options checkpoint.CreateOptions) error { checkpointDir = "/dir/foo"
containerID = container )
checkpointID = options.CheckpointID
checkpointDir = options.CheckpointDir for _, tc := range []bool{true, false} {
exit = options.Exit leaveRunning := strconv.FormatBool(tc)
return nil t.Run("leave-running="+leaveRunning, func(t *testing.T) {
}, var actualContainerName string
}) var actualOptions checkpoint.CreateOptions
cmd := newCreateCommand(cli) cli := test.NewFakeCli(&fakeClient{
cp := "checkpoint-bar" checkpointCreateFunc: func(container string, options checkpoint.CreateOptions) error {
cmd.SetArgs([]string{"container-foo", cp}) actualContainerName = container
cmd.Flags().Set("leave-running", "true") actualOptions = options
cmd.Flags().Set("checkpoint-dir", "/dir/foo") return nil
assert.NilError(t, cmd.Execute()) },
assert.Check(t, is.Equal("container-foo", containerID)) })
assert.Check(t, is.Equal(cp, checkpointID)) cmd := newCreateCommand(cli)
assert.Check(t, is.Equal("/dir/foo", checkpointDir)) cmd.SetOut(io.Discard)
assert.Check(t, is.Equal(false, exit)) cmd.SetErr(io.Discard)
assert.Check(t, is.Equal(cp, strings.TrimSpace(cli.OutBuffer().String()))) cmd.SetArgs([]string{containerName, checkpointName})
assert.Check(t, cmd.Flags().Set("leave-running", leaveRunning))
assert.Check(t, cmd.Flags().Set("checkpoint-dir", checkpointDir))
assert.NilError(t, cmd.Execute())
assert.Check(t, is.Equal(actualContainerName, containerName))
expected := checkpoint.CreateOptions{
CheckpointID: checkpointName,
CheckpointDir: checkpointDir,
Exit: !tc,
}
assert.Check(t, is.Equal(actualOptions, expected))
assert.Check(t, is.Equal(strings.TrimSpace(cli.OutBuffer().String()), checkpointName))
})
}
} }