openai_gateway_ws_failover_resume_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package handler
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestOpenAIWSNextAttemptMessageUsesCurrentTurnPayload(t *testing.T) {
  7. firstMessage := []byte(`{"type":"response.create","input":"first"}`)
  8. currentTurn := []byte(`{"type":"response.create","input":"turn-281"}`)
  9. next, ok := openAIWSNextAttemptMessage(firstMessage, currentTurn, true)
  10. require.True(t, ok)
  11. require.Equal(t, currentTurn, next)
  12. next[0] = 'x'
  13. require.Equal(t, byte('{'), currentTurn[0], "retry payload must be cloned")
  14. }
  15. func TestOpenAIWSNextAttemptMessageRejectsMissingCurrentTurnPayload(t *testing.T) {
  16. next, ok := openAIWSNextAttemptMessage([]byte(`{"type":"response.create"}`), nil, true)
  17. require.False(t, ok)
  18. require.Nil(t, next)
  19. }
  20. func TestOpenAIWSNextAttemptMessageKeepsInitialMessageForFirstTurnFailover(t *testing.T) {
  21. firstMessage := []byte(`{"type":"response.create","input":"first"}`)
  22. next, ok := openAIWSNextAttemptMessage(firstMessage, nil, false)
  23. require.True(t, ok)
  24. require.Equal(t, firstMessage, next)
  25. }