Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
JavaScript
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970import assert from "node:assert/strict";import { mkdtemp, rm, writeFile } from "node:fs/promises";import { tmpdir } from "node:os";import { join, resolve } from "node:path";import { test } from "node:test";import { unstable_startWorker } from "wrangler";
// Deliberately separate from config.mjs, which replaces Cloudflare credentials// with local-only placeholders. Opt in explicitly: this makes one paid search.test( "live OpenAI search through the native remote AI binding", { skip: process.env.FLAREBOT_WEB_LIVE_SMOKE !== "1", timeout: 120_000, }, async () => { const temporary = await mkdtemp(join(tmpdir(), "flarebot-search-live-")); let worker; try { const entry = join(temporary, "worker.ts"); const config = join(temporary, "wrangler.json"); await writeFile( entry, ` import { searchWeb } from ${JSON.stringify(resolve("worker/web-search.ts"))}; import { runWeb } from ${JSON.stringify(resolve("worker/web-errors.ts"))}; export default { async fetch(request, env) { return Response.json(await runWeb(searchWeb(env.AI, "Cloudflare Workers official documentation", 3), request.signal)); } }; `, ); await writeFile( config, JSON.stringify({ name: "flarebot-search-live", main: entry, compatibility_date: "2026-09-04", compatibility_flags: ["nodejs_compat"], ai: { binding: "AI", remote: true }, observability: { enabled: false }, }), ); worker = await unstable_startWorker({ config, dev: { inspector: false, server: { hostname: "127.0.0.1", port: 0 } }, }); await worker.ready; const response = await worker.fetch("http://localhost/"); const result = await response.json(); assert.equal(result.ok, true, JSON.stringify(result)); assert.ok(result.sources.length > 0 && result.sources.length <= 3); assert.ok( result.sources.every( (source) => source.sourceKind === "search" && source.finalUrl.startsWith("https://"), ), ); assert.ok(result.generatedSummary?.text); console.log( "Live search sources:", result.sources.map((source) => source.finalUrl), ); } finally { await worker?.dispose(); await rm(temporary, { recursive: true, force: true }); } },);