X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/63278e5c97fbad815c37c02f17d562367f4460a7..e0ab6220b6fd35f7e92a04e4bf149940185713ab:/responses_test.go?ds=sidebyside diff --git a/responses_test.go b/responses_test.go index 9a1355a..3ff3277 100644 --- a/responses_test.go +++ b/responses_test.go @@ -197,6 +197,28 @@ func TestClientRecordsEachCall(t *testing.T) { require.Equal(t, os.FileMode(0o600), info.Mode().Perm()) } +func TestClientStopsAtTheFirstOutputItem(t *testing.T) { + server := newFakeResponses(t) + server.reply = func(w http.ResponseWriter, call fakeCall) { + writeEvents(w, + map[string]any{"type": "response.created"}, + map[string]any{"type": "response.output_item.added", "item": messageItem("")}, + ) + } + + client := newTestClient(t, server) + request := testRequest() + request.StopAtOutput = true + request.Turn = "warmup" + response, err := client.Create(t.Context(), request) + require.NoError(t, err) + require.Empty(t, response.Output) + + request.StopAtOutput = false + _, err = client.Create(t.Context(), request) + require.ErrorContains(t, err, "event stream ended before the response completed") +} + func TestClientRefusesCallsOverTheLimit(t *testing.T) { server := newFakeResponses(t) client := newTestClient(t, server)