agentgate / tree / test/client.test.js ยท raw (this view has old GitHub links rewritten for the mirror; raw is byte-exact)
import test from 'node:test';
import assert from 'node:assert/strict';
import { createAgentGateClient } from '../src/client.js';

test('client: preview hits the free route, check without paidFetch surfaces 402 clearly', async () => {
  const seen = [];
  const fetch = async (url) => {
    seen.push(url);
    if (url.includes('/preview')) return new Response(JSON.stringify({ verified: true, tier: 'free' }), { status: 200 });
    return new Response('{}', { status: 402 });
  };
  const c = createAgentGateClient({ baseUrl: 'https://x.test/', fetch });
  assert.equal((await c.preview('Mf22soLh1NuZYFgBK8iSs')).verified, true);
  assert.equal(seen[0], 'https://x.test/v1/check-agent/preview?id=Mf22soLh1NuZYFgBK8iSs&network=mainnet');
  await assert.rejects(c.check('Mf22soLh1NuZYFgBK8iSs'), (e) => e.status === 402);
  const paid = createAgentGateClient({ baseUrl: 'https://x.test', fetch, paidFetch: async () => new Response(JSON.stringify({ verified: true, owner: 'o' }), { status: 200 }) });
  assert.equal((await paid.verify('Mf22soLh1NuZYFgBK8iSs')).owner, 'o');
});

agentgate-source: code mirror on Cloudflare Pages. All repos