chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import { PuterExecutor } from "../../open-sse/executors/puter.ts";
|
||||
|
||||
test("PuterExecutor.buildUrl always uses Puter OpenAI endpoint", () => {
|
||||
const executor = new PuterExecutor();
|
||||
assert.equal(
|
||||
executor.buildUrl("gpt-4.1", true),
|
||||
"https://api.puter.com/puterai/openai/v1/chat/completions"
|
||||
);
|
||||
});
|
||||
|
||||
test("PuterExecutor.buildHeaders supports API key, access token and optional SSE accept", () => {
|
||||
const executor = new PuterExecutor();
|
||||
const apiKeyHeaders = executor.buildHeaders({ apiKey: "puter-key" }, true);
|
||||
const accessTokenHeaders = executor.buildHeaders({ accessToken: "puter-token" }, false);
|
||||
|
||||
assert.deepEqual(apiKeyHeaders, {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: "Bearer puter-key",
|
||||
Accept: "text/event-stream",
|
||||
});
|
||||
assert.deepEqual(accessTokenHeaders, {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: "Bearer puter-token",
|
||||
});
|
||||
});
|
||||
|
||||
test("PuterExecutor.transformRequest is a passthrough", () => {
|
||||
const executor = new PuterExecutor();
|
||||
const body = {
|
||||
model: "google/gemini-2.5-pro",
|
||||
messages: [{ role: "user", content: "hello" }],
|
||||
};
|
||||
assert.equal(executor.transformRequest(body.model, body, true, {}), body);
|
||||
});
|
||||
|
||||
test("PuterExecutor.execute uses inherited BaseExecutor flow", async () => {
|
||||
const executor = new PuterExecutor();
|
||||
const originalFetch = globalThis.fetch;
|
||||
let captured;
|
||||
globalThis.fetch = async (url, options) => {
|
||||
captured = { url: String(url), options };
|
||||
return new Response(JSON.stringify({ ok: true }), {
|
||||
status: 200,
|
||||
headers: { "Content-Type": "application/json" },
|
||||
});
|
||||
};
|
||||
|
||||
try {
|
||||
const body = {
|
||||
model: "google/gemini-2.5-pro",
|
||||
messages: [{ role: "user", content: "hello" }],
|
||||
};
|
||||
const result = await executor.execute({
|
||||
model: body.model,
|
||||
body,
|
||||
stream: false,
|
||||
credentials: { apiKey: "puter-key" },
|
||||
});
|
||||
|
||||
assert.equal(result.response.status, 200);
|
||||
// #3941 ("Capture actual upstream provider requests") makes BaseExecutor return
|
||||
// transformedBody as the JSON-round-tripped serialized body (the real on-the-wire
|
||||
// payload, post fingerprint/sign), so it is a structurally-equal new object rather
|
||||
// than the same reference. Puter's transformRequest is still a passthrough, so the
|
||||
// body must match structurally.
|
||||
assert.deepEqual(result.transformedBody, body);
|
||||
assert.equal(result.url, "https://api.puter.com/puterai/openai/v1/chat/completions");
|
||||
assert.equal(captured.options.headers.Authorization, "Bearer puter-key");
|
||||
assert.equal(captured.options.body, JSON.stringify(body));
|
||||
} finally {
|
||||
globalThis.fetch = originalFetch;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user