Version:
SDK for interfacing with WhatsApp Business Platform in Typescript or Node.js using the Cloud API, hosted by Meta.
65 lines (55 loc) • 2.25 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 WhatsApp from '../WhatsApp';
import { SetPinResponseObject } from '../types/twoStepVerification';
import TwoStepVerificationAPI from '../api/twoStepVerification';
describe('WhatsApp Two-Step Verification API', () => {
const sdkConfig: WAConfigType = (global as any).sdkConfig;
process.env.WA_BASE_URL = sdkConfig.WA_BASE_URL;
process.env.M4D_APP_ID = sdkConfig.M4D_APP_ID;
process.env.M4D_APP_SECRET = sdkConfig.M4D_APP_SECRET;
process.env.WA_PHONE_NUMBER_ID = sdkConfig.WA_PHONE_NUMBER_ID.toString();
process.env.WA_BUSINESS_ACCOUNT_ID = sdkConfig.WA_BUSINESS_ACCOUNT_ID;
process.env.CLOUD_API_ACCESS_TOKEN = sdkConfig.CLOUD_API_ACCESS_TOKEN;
process.env.CLOUD_API_VERSION = sdkConfig.CLOUD_API_VERSION;
process.env.WEBHOOK_ENDPOINT = sdkConfig.WEBHOOK_ENDPOINT;
process.env.WEBHOOK_VERIFICATION_TOKEN = sdkConfig.WEBHOOK_VERIFICATION_TOKEN;
process.env.LISTENER_PORT = sdkConfig.LISTENER_PORT.toString();
process.env.DEBUG = sdkConfig.DEBUG.toString();
process.env.REQUEST_TIMEOUT = sdkConfig.REQUEST_TIMEOUT.toString();
const wa = new WhatsApp();
const basePath = `/${sdkConfig.CLOUD_API_VERSION}/${sdkConfig.WA_PHONE_NUMBER_ID}`;
const defaultTwoStepVerificationResponseObjectBody: SetPinResponseObject = {
success: true,
};
let scope;
afterEach(() => {
nock.cleanAll();
nock.restore();
nock.activate();
});
it('messages class instance', () => {
expect(wa.twoStepVerification).toBeInstanceOf(TwoStepVerificationAPI);
});
it('Set the two-step verification pin to 123456', async () => {
scope = nock(`https://${sdkConfig.WA_BASE_URL}`)
.post(`${basePath}/`)
.delay(200)
.delayBody(200)
.delayConnection(200)
.reply(200, defaultTwoStepVerificationResponseObjectBody);
const newPin = 123456;
const response = await wa.twoStepVerification.setPin(newPin);
expect(await response.responseBodyToJSON()).toStrictEqual(
defaultTwoStepVerificationResponseObjectBody,
);
scope.isDone();
});
});