]> git.giacomolli.uk - onechat/blobdiff - responses_test.go
Lay out turn requests for the prompt cache
[onechat] / responses_test.go
index 9a1355a8d0098bb2ee18b01a1d0b9e3d0a8d665e..3ff327781adc83451074dec3d028dda86c55c2cd 100644 (file)
@@ -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)