Version:
SDK for interfacing with WhatsApp Business Platform in Typescript or Node.js using the Cloud API, hosted by Meta.
57 lines (47 loc) • 1.47 kB
text/typescript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
import nock from 'nock';
import { WAConfigType } from '../types/config';
import { HttpMethodsEnum } from '../types/enums';
import requester from '../requester';
describe('HTTP requester tests', () => {
const sdkConfig: WAConfigType = (global as any).sdkConfig;
const basePath = `/${sdkConfig.CLOUD_API_VERSION}/${sdkConfig.WA_PHONE_NUMBER_ID}`;
const request = new requester(
sdkConfig.WA_BASE_URL,
sdkConfig.CLOUD_API_VERSION,
sdkConfig.WA_PHONE_NUMBER_ID,
sdkConfig.CLOUD_API_ACCESS_TOKEN,
sdkConfig.WA_BUSINESS_ACCOUNT_ID,
'test-user-agent',
);
const default_response_body = { success: false };
let scope;
afterEach(() => {
nock.cleanAll();
nock.restore();
nock.activate();
});
it('Send a unsupported endpoint request', async () => {
scope = nock(`https://${sdkConfig.WA_BASE_URL}`)
.get(/.*/)
.delay(200)
.delayBody(200)
.delayConnection(200)
.reply(400, default_response_body);
const response = await request.sendCAPIRequest(
HttpMethodsEnum.Get,
`${basePath}/test`,
sdkConfig.REQUEST_TIMEOUT,
);
expect(response.statusCode()).toStrictEqual(400);
const respBody = await response.responseBodyToJSON();
expect(respBody).toStrictEqual(default_response_body);
scope.isDone();
});
});