package exec

import (
	"encoding/json"
	"strings"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestValidateReplayHeadersRejectsSelectorMismatch(t *testing.T) {
	input := json.RawMessage(`{"requestId":"req-1","agentId":"agt-1"}`)
	require.NoError(t, validateReplayHeaders("agent", "start", input, "req-1", "req-1"))
	require.Error(t, validateReplayHeaders("agent", "start", input, "req-2", "req-2"))
	require.Error(t, validateReplayHeaders("agent", "start", input, "req-1", "req-2"))
	require.Error(t, validateReplayHeaders("agent", "start", input, "", "req-2"))
	require.Error(t, validateReplayHeaders("agent", "start", json.RawMessage(`{"requestId":"req-1","idempotencyKey":"req-2"}`), "", ""))
	require.Error(t, validateReplayHeaders("agent", "start", input, strings.Repeat("x", maxReplaySelectorBytes+1), ""))
}
