package container

import (
	"strings"
	"testing"
	"time"

	"github.com/docker/cli/e2e/internal/fixtures"
	"gotest.tools/v3/icmd"
	"gotest.tools/v3/poll"
)

func TestKillContainer(t *testing.T) {
	result := icmd.RunCommand("docker", "run", "-d", fixtures.AlpineImage, "top")
	result.Assert(t, icmd.Success)

	containerID := strings.TrimSpace(result.Stdout())

	// Kill with SIGTERM should kill the process
	result = icmd.RunCmd(icmd.Command("docker", "kill", "-s", "SIGTERM", containerID))

	result.Assert(t, icmd.Success)
	poll.WaitOn(t, containerStatus(t, containerID, "exited"), poll.WithDelay(100*time.Millisecond), poll.WithTimeout(5*time.Second))

	// Kill on a stop container should return an error
	result = icmd.RunCmd(icmd.Command("docker", "kill", containerID))
	result.Assert(t, icmd.Expected{
		ExitCode: 1,
		Err:      "is not running",
	})
}

func containerStatus(t *testing.T, containerID, status string) func(poll.LogT) poll.Result {
	t.Helper()
	return func(poll.LogT) poll.Result {
		result := icmd.RunCommand("docker", "inspect", "-f", "{{ .State.Status }}", containerID)
		result.Assert(t, icmd.Success)
		actual := strings.TrimSpace(result.Stdout())
		if actual == status {
			return poll.Success()
		}
		return poll.Continue("expected status %s != %s", status, actual)
	}
}
