Невозможно издеваться над библиотекой OAuth2Client google-auth-library для написания тестовых примеров
Я рассмотрел несколько похожих вопросов, но ни один из них не подошел к моей проблеме. Я пытаюсь издеваться над google-auth-library OAuth2Client.
code.ts
const {OAuth2Client} = require('google-auth-library');
const client = new OAuth2Client(clietIds);
export async function verifyIdTokenforUser(email, userIdToken){
try {
const ticket = await client.verifyIdToken({
idToken: userIdToken,
audience: clietIds
});
const payload = ticket.getPayload();
let clientId = clietIds.includes(payload.aud);
if(!clientId) {
return false;
} if(!payload.email_verified) {
return false;
} else {
return true;
}
} catch (error) {
console.log(`Error:GoogleClientAPIHelper.validateUserIdToken: Issue with calling Google verifyIdToken client api. error}`);
return false;
}
}
написание тестового примера для вышеуказанного покрытия кода
code.spec.ts
import anyTest, { TestInterface } from 'ava';
const {OAuth2Client} = require('google-auth-library');
import * as GoogleAPIClientHelper from "../google-api-client-helper";
let clietIds:any = process.env.googleClientIds = 'test_client,test_client_2';
const client = new OAuth2Client(clietIds);
import {
createSandbox,
SinonStub,
SinonSpy,
SinonSandbox,
} from 'sinon';
const test = anyTest as TestInterface<any>
const sandbox = createSandbox();
sandbox.stub(client,'verifyIdToken');
test.afterEach(t => { sandbox.restore(); })
test.serial('google-api-client-helper.ts-GoogleAPIClientHelper() : should be return false when clientId not match or email verified false.', async (t) => {
let userIdToken='test_token';
let email = 'test_email';
let payload = {
"aud": "s6BhdRkqt3",
"email_verified": false };
process.env.googleClientIds = 'test_client,test_client_2';
(client.verifyIdToken as SinonStub).returns(payload);
const res = await GoogleAPIClientHelper.validateUserIdToken(email, userIdToken);
t.is(res, false, 'Expect res to be false')
})
но он всегда переходит в блок catch. Ошибка:GoogleClientAPIHelper.validateUserIdToken: проблема с вызовом API клиента Google verifyIdToken.
он на самом деле вызывает OAuth2Client google-auth-library с любым предложением, как я могу ЗАМЕТАТЬ ЭТО И ПРОЙДИТЬ тестовые примеры для успеха и неудачного сценария.