| 1 | package responses |
| 2 | |
| 3 | import ( |
| 4 | "encoding/json" |
| 5 | "testing" |
| 6 | |
| 7 | "reasonix/internal/provider" |
| 8 | ) |
| 9 | |
| 10 | func TestConversationDigestIncludesEnabledWebSearchReplayItems(t *testing.T) { |
| 11 | messages := []provider.Message{ |
| 12 | {Role: provider.RoleUser, Content: "search"}, |
| 13 | {Role: provider.RoleAssistant, Content: "found", ResponsesItems: []json.RawMessage{ |
| 14 | json.RawMessage(`{"id":"ws_1","type":"web_search_call","status":"completed"}`), |
| 15 | }}, |
| 16 | } |
| 17 | searchOff := New(Config{Name: "compatible", BaseURL: "https://gateway.example", Model: "m", Mode: "stateful"}).(*client) |
| 18 | searchOn := New(Config{Name: "compatible", BaseURL: "https://gateway.example", Model: "m", Mode: "stateful", WebSearch: true}).(*client) |
| 19 | if searchOff.conversationDigest(messages) == searchOn.conversationDigest(messages) { |
| 20 | t.Fatal("web search replay items must change the digest (wire sends completed search calls)") |
| 21 | } |
| 22 | } |
| 23 |