Version:
SDK for interfacing with WhatsApp Business Platform in Typescript or Node.js using the Cloud API, hosted by Meta.
60 lines (52 loc) • 1.55 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 HttpsClient from '../httpsClient';
import { NoParamCallback } from 'fs';
describe('HTTPS client tests', () => {
const sdkConfig: WAConfigType = (global as any).sdkConfig;
const basePath = `/${sdkConfig.CLOUD_API_VERSION}/${sdkConfig.WA_PHONE_NUMBER_ID}`;
const reqHeaders = {
'Content-Type': 'application/json',
'Authorization': `Bearer ${sdkConfig.CLOUD_API_ACCESS_TOKEN}`,
};
const client = new HttpsClient();
let scope;
afterEach(() => {
nock.restore();
});
it('Send a POST request', async () => {
scope = nock(`https://${sdkConfig.WA_BASE_URL}`, {
reqheaders: {
authorization: `Bearer ${sdkConfig.CLOUD_API_ACCESS_TOKEN}`,
},
})
.post(/.*/)
.delayConnection(100)
.delay(200)
.reply((uri, res_body) => {
return [200, res_body];
});
const reqBody = { testKey: 'testValue' };
const response = await client.sendRequest(
sdkConfig.WA_BASE_URL,
443,
`${basePath}/test`,
HttpMethodsEnum.Post,
reqHeaders,
sdkConfig.REQUEST_TIMEOUT,
JSON.stringify(reqBody),
);
expect(response.statusCode()).toEqual(200);
const respBody = await response.responseBodyToJSON();
expect(respBody).toStrictEqual(reqBody);
scope.isDone();
});
});