X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/7594b9938b7343717e7a57aa7aede5d40d547483..a3b9849a54a6cd8a4cc5b1ae03a39aab31322f7b:/model_test.go?ds=inline diff --git a/model_test.go b/model_test.go index 16946a0..e932107 100644 --- a/model_test.go +++ b/model_test.go @@ -85,13 +85,26 @@ func TestClientSendsTheSessionHeaderToChatGPT(t *testing.T) { call := server.Call(0) require.Equal(t, tc.want, call.header.Get("session_id")) require.Equal(t, "agent-key", call.body["prompt_cache_key"]) + + // A subagent has its own key. + request := modelTestRequest() + request.Agent = "GreenOtter" + _, err = client.Create(t.Context(), request) + require.NoError(t, err) + + call = server.Call(1) + if tc.want != "" { + require.Equal(t, "agent-key-GreenOtter", call.header.Get("session_id")) + } + + require.Equal(t, "agent-key-GreenOtter", call.body["prompt_cache_key"]) }) } } func TestClientReadsTheStream(t *testing.T) { server := newModelFake(t) - server.reply = func(w http.ResponseWriter, call ModelFakeCall) { + server.reply = func(w http.ResponseWriter, _ ModelFakeCall) { modelWriteEvents(w, map[string]any{"type": "response.created", "response": map[string]any{}}, map[string]any{"type": "response.output_item.done", "item": map[string]any{"type": "reasoning", "encrypted_content": "opaque"}}, @@ -116,7 +129,7 @@ func TestClientReadsTheStream(t *testing.T) { func TestClientTakesTheOutputOfTheCompletedResponse(t *testing.T) { server := newModelFake(t) - server.reply = func(w http.ResponseWriter, call ModelFakeCall) { + server.reply = func(w http.ResponseWriter, _ ModelFakeCall) { modelWriteEvents(w, modelCompletedEvent([]any{modelMessageItem("only here")}, 10, 0, 2)) } @@ -150,7 +163,7 @@ func TestClientRecordsEachCall(t *testing.T) { require.NoError(t, err) require.NotContains(t, server.Call(0).body, "node") require.NotContains(t, string(server.Call(0).raw), "[2,5]") - require.NotContains(t, string(server.Call(0).raw), "GreenOtter") + require.NotContains(t, server.Call(0).body, "agent") _, err = client.Create(t.Context(), modelTestRequest()) require.ErrorContains(t, err, "HTTP 429") @@ -242,7 +255,7 @@ func TestClientFailsWhenTheResponseFails(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { server := newModelFake(t) - server.reply = func(w http.ResponseWriter, call ModelFakeCall) { + server.reply = func(w http.ResponseWriter, _ ModelFakeCall) { modelWriteEvents(w, tc.events...) }