X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/a5c83e92d7feea2e104b5515043a76c8c4c56c60..0cb73c3dde36d0078f3c1aa4200f2edcb5ceed38:/model_fake_helper_test.go?ds=sidebyside diff --git a/model_fake_helper_test.go b/model_fake_helper_test.go index 00fa808..af94776 100644 --- a/model_fake_helper_test.go +++ b/model_fake_helper_test.go @@ -34,20 +34,19 @@ type ModelFake struct { reply func(http.ResponseWriter, ModelFakeCall) } -// Call returns call number n. -func (f *ModelFake) Call(n int) ModelFakeCall { - f.mutex.Lock() - defer f.mutex.Unlock() +func newModelFake(t *testing.T) *ModelFake { + t.Helper() - return f.calls[n] -} + f := &ModelFake{ + reply: func(w http.ResponseWriter, _ ModelFakeCall) { + modelWriteEvents(w, modelCompletedEvent([]any{modelMessageItem("a line")}, 100, 0, 5)) + }, + } -// Calls returns the number of calls. -func (f *ModelFake) Calls() int { - f.mutex.Lock() - defer f.mutex.Unlock() + f.Server = httptest.NewServer(http.HandlerFunc(f.serve)) + t.Cleanup(f.Close) - return len(f.calls) + return f } func (f *ModelFake) serve(w http.ResponseWriter, r *http.Request) { @@ -80,27 +79,20 @@ func (f *ModelFake) serve(w http.ResponseWriter, r *http.Request) { reply(w, call) } -func newModelFake(t *testing.T) *ModelFake { - t.Helper() - - f := &ModelFake{ - reply: func(w http.ResponseWriter, _ ModelFakeCall) { - modelWriteEvents(w, modelCompletedEvent([]any{modelMessageItem("a line")}, 100, 0, 5)) - }, - } - - f.Server = httptest.NewServer(http.HandlerFunc(f.serve)) - t.Cleanup(f.Close) +// Call returns call number n. +func (f *ModelFake) Call(n int) ModelFakeCall { + f.mutex.Lock() + defer f.mutex.Unlock() - return f + return f.calls[n] } -func modelTestRequest() ModelRequest { - return ModelRequest{ - Model: "gpt-test", - Effort: "low", - Input: []any{modelUserMessage("hello")}, - } +// Calls returns the number of calls. +func (f *ModelFake) Calls() int { + f.mutex.Lock() + defer f.mutex.Unlock() + + return len(f.calls) } // modelWriteEvents writes events as a server-sent event stream. @@ -120,16 +112,6 @@ func modelWriteEvents(w http.ResponseWriter, events ...any) { } } -func modelMessageItem(text string) map[string]any { - return map[string]any{ - "type": "message", - "role": "assistant", - "content": []any{ - map[string]any{"type": "output_text", "text": text}, - }, - } -} - func modelCompletedEvent(output []any, input, cached, out int) map[string]any { if output == nil { output = []any{} @@ -148,6 +130,24 @@ func modelCompletedEvent(output []any, input, cached, out int) map[string]any { } } +func modelMessageItem(text string) map[string]any { + return map[string]any{ + "type": "message", + "role": "assistant", + "content": []any{ + map[string]any{"type": "output_text", "text": text}, + }, + } +} + +func modelTestRequest() ModelRequest { + return ModelRequest{ + Model: "gpt-test", + Effort: "low", + Input: []any{modelUserMessage("hello")}, + } +} + func modelReadUsage(t *testing.T, path string) []ModelUsageRecord { t.Helper()