import fs from 'fs'; import path from 'path'; import { SerializableOrJSHandle, WrapElementHandle } from 'puppeteer'; import { BrowserInterface } from '../../../src/typings'; import { RequestHandler } from './request-handler'; const workFlowConfigFilePath = path.join( 'src', 'services', 'workflow', 'srp', 'workflow.json', ); const srpWorkflowJson = JSON.parse( fs.readFileSync(workFlowConfigFilePath).toString(), ); export class GetServiceAccountsRequestHandler implements RequestHandler { // tslint:disable-next-line: no-empty async type() {} async waitForResponse( urlOrPredicate: | string | ((res: BrowserInterface.HTTPResponse) => boolean | Promise), options?: { timeout?: number; }, ) { try { if ( typeof urlOrPredicate === 'string' && urlOrPredicate.startsWith( srpWorkflowJson.getServiceAccounts.userDetailsUrl, ) ) { const data = { displayName: 'Richard Morris', }; return Promise.resolve(data); } return Promise.resolve({}); } catch (err) { return Promise.reject(err); } } async $eval( selector: string, pageFunction: ( element: Element, ...args: unknown[] ) => ReturnType | Promise, ...args: SerializableOrJSHandle[] ) { if (selector === srpWorkflowJson.getServiceAccounts.billPdfUrlSelector) { const data: WrapElementHandle = 'billpdfurl.pdf'; return Promise.resolve(data); } } }