+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")
+}
+