package cmd

import (
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/AgentTeam/desktop/internal/daemon"
)

func TestWaitForHealthyRunningDaemonReturnsHealthyStatus(t *testing.T) {
	originalDaemonStatus := daemonStatus
	t.Cleanup(func() { daemonStatus = originalDaemonStatus })

	want := &daemon.Status{Running: true, Healthy: true, PID: 123}
	daemonStatus = func() *daemon.Status { return want }

	got, err := waitForHealthyRunningDaemon(0)
	require.NoError(t, err)
	require.Same(t, want, got)
}

func TestWaitForHealthyRunningDaemonRejectsZeroTimeout(t *testing.T) {
	originalDaemonStatus := daemonStatus
	t.Cleanup(func() { daemonStatus = originalDaemonStatus })

	daemonStatus = func() *daemon.Status {
		return &daemon.Status{Running: true, Healthy: false, PID: 123}
	}

	_, err := waitForHealthyRunningDaemon(0)
	require.ErrorContains(t, err, "did not become healthy")
}
