15 lines
749 B
JavaScript
15 lines
749 B
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { exchangeCode } from '../src/lib/wechat.js';
|
|
|
|
test('exchangeCode returns WeChat session', async () => {
|
|
const session = await exchangeCode({ code: 'abc', appId: 'id', appSecret: 'secret', fetchImpl: async (url) => {
|
|
assert.equal(url.searchParams.get('js_code'), 'abc'); return { ok: true, json: async () => ({ openid: 'openid-1' }) };
|
|
}});
|
|
assert.equal(session.openid, 'openid-1');
|
|
});
|
|
test('exchangeCode rejects WeChat API errors', async () => {
|
|
await assert.rejects(exchangeCode({ code: 'bad', appId: 'id', appSecret: 'secret', fetchImpl: async () => ({ ok: true, json: async () => ({ errcode: 40029, errmsg: 'invalid code' }) }) }), /invalid code/);
|
|
});
|
|
|