package converter

import (
	"encoding/base64"
	"testing"
	"time"

	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/AgentTeam/internal/store/taskboard"
)

func TestTaskTimelineCursorRoundTripCarriesSequence(t *testing.T) {
	t.Parallel()

	createdAt := time.Date(2026, 8, 23, 10, 30, 0, 0, time.UTC)
	token := ToTaskTimelineCursorToken(taskboard.TaskTimelineCursor{
		Seq:       42,
		CreatedAt: createdAt,
		ID:        "tev_42",
	})

	decoded, err := FromTaskTimelineCursorToken(token)
	require.NoError(t, err)
	require.Equal(t, taskboard.TaskTimelineCursor{Seq: 42, CreatedAt: createdAt, ID: "tev_42"}, decoded)
}

func TestTaskTimelineCursorAcceptsLegacyTokenWithoutSequence(t *testing.T) {
	t.Parallel()

	createdAt := time.Date(2026, 8, 23, 10, 30, 0, 0, time.UTC)
	legacyPayload := `{"createdAt":"2026-08-23T10:30:00Z","id":"tev_legacy"}`
	token := base64.RawURLEncoding.EncodeToString([]byte(legacyPayload))

	decoded, err := FromTaskTimelineCursorToken(token)
	require.NoError(t, err)
	require.Equal(t, taskboard.TaskTimelineCursor{CreatedAt: createdAt, ID: "tev_legacy"}, decoded)
}
