Skip to main content
Glama
oauth.callback-handler.test.ts2.3 kB
import '../setup/test-setup.js' import test from 'node:test' import assert from 'node:assert/strict' // Test imports one by one to isolate the issue console.log('Importing PKCEManager...') import { PKCEManager } from '../../src/oauth/pkce-manager.js' console.log('Importing StateManager...') import { StateManager } from '../../src/oauth/state-manager.js' console.log('Importing createMockServer...') import { createMockServer } from '../utils/mock-http.js' console.log('Importing CallbackHandler...') import { CallbackHandler } from '../../src/oauth/callback-handler.js' console.log('All imports successful') test.skip('CallbackHandler exchanges code and stores token', async () => { const tokenSrv = await createMockServer([ { method: 'POST', path: '/token', handler: (_req, body) => { if (body.code === 'good') return { body: { access_token: 'AT', expires_in: 60, scope: 'openid' } } return { status: 400, body: { error: 'bad code' } } } }, ]) try { try { const pkce = new PKCEManager() const stateMgr = new StateManager() const state = stateMgr.create({ provider: 'prov', serverId: 'srv', clientToken: 'CT', returnTo: '/done' }) const { verifier } = await pkce.generate(state) // pkce manager consumes verifier on getVerifier(), which CallbackHandler will do const cfg: any = { master_oauth: { authorization_endpoint: tokenSrv.url + '/auth', token_endpoint: tokenSrv.url + '/token', client_id: 'cid', redirect_uri: tokenSrv.url + '/cb', scopes: ['openid'] }, hosting: { platform: 'node' }, servers: [], } let stored: any const cb = new CallbackHandler({ config: cfg, stateManager: stateMgr, pkceManager: pkce, baseUrl: tokenSrv.url, storeDelegatedToken: async (ct, sid, tok) => { stored = { ct, sid, tok } } }) const res = await cb.handleCallback(new URLSearchParams({ state, code: 'good' }), { provider: 'custom', authorization_endpoint: tokenSrv.url + '/auth', token_endpoint: tokenSrv.url + '/token', client_id: 'cid' }) assert.ok(res.token) assert.equal(stored.ct, 'CT') assert.equal(stored.sid, 'srv') assert.equal(stored.tok.access_token, 'AT') } catch (error) { console.error('Test error:', error) throw error } } finally { await tokenSrv.close() } })

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jakedismo/master-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server