auth := newTestChatGPTAuth(t, server)
var out strings.Builder
+
err := auth.Login(t.Context(), &out)
require.NoError(t, err)
chatgptWriteTestTokens(t, auth, server.token(time.Second), "refresh-0")
var group sync.WaitGroup
+
errs := make(chan error, 8)
for range 8 {
group.Go(func() {
group.Wait()
close(errs)
+
for err := range errs {
require.NoError(t, err)
}
server.failRefresh = true
chatgptWriteTestTokens(t, auth, server.token(-time.Minute), "refresh-0")
+
before, err := os.ReadFile(auth.path)
require.NoError(t, err)
require.NoError(t, err)
require.Equal(t, 1, server.refreshes)
+
call := responses.Call(0)
require.Equal(t, "Bearer "+server.access[1], call.header.Get("Authorization"))
require.Equal(t, chatgptTestAccount, call.header.Get("ChatGPT-Account-Id"))
config := defaultConfig()
t.Setenv("OPENAI_API_KEY", modelTestKey)
+
address, auth, err := modelEndpoint(config, dir)
require.NoError(t, err)
require.Equal(t, modelChatGPTURL, address)
require.Equal(t, ModelAPIKey(modelTestKey), auth)
t.Setenv("OPENAI_API_KEY", "")
+
_, _, err = modelEndpoint(config, dir)
require.ErrorContains(t, err, "OPENAI_API_KEY")
}
require.NoError(t, err)
var tokens ChatGPTTokenFile
+
require.NoError(t, json.Unmarshal(data, &tokens))
return tokens