Невозможно издеваться над библиотекой 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 с любым предложением, как я могу ЗАМЕТАТЬ ЭТО И ПРОЙДИТЬ тестовые примеры для успеха и неудачного сценария.

0 ответов

Другие вопросы по тегам