Skip to content

Commit 2ac603a

Browse files
committed
add API unit and smoke tests
1 parent e990a4b commit 2ac603a

File tree

2 files changed

+177
-0
lines changed

2 files changed

+177
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//@ts-nocheck
2+
import { TollFreeVerificationApi } from '../../api';
3+
import { Configuration } from '../../configuration';
4+
5+
describe('TollFreeVerificationApi', () => {
6+
const config = new Configuration({username: BW_USERNAME, password: BW_PASSWORD});
7+
const tfvApi = new TollFreeVerificationApi(config);
8+
9+
describe('listTollFreeUseCases', () => {
10+
test('list toll free use cases', async () => {
11+
const { status, data } = await tfvApi.listTollFreeUseCases(BW_ACCOUNT_ID);
12+
13+
expect(status).toEqual(200);
14+
expect(data).toBeInstanceOf(Array);
15+
});
16+
});
17+
18+
});
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
//@ts-nocheck
2+
import { TollFreeVerificationApi } from '../../../api';
3+
import { Configuration } from '../../../configuration';
4+
import { CallbackTypeEnum, TfvStatusEnum, WebhookSubscriptionTypeEnum } from '../../../models';
5+
6+
describe('TollFreeVerificationApi', () => {
7+
const config = new Configuration({
8+
username: BW_USERNAME,
9+
password: BW_PASSWORD,
10+
basePath: 'http://127.0.0.1:4010'
11+
});
12+
const tfvApi = new TollFreeVerificationApi(config);
13+
14+
const webhookSubscriptionRequestSchema = {
15+
basicAuthentication: {
16+
username: 'username',
17+
password: 'password'
18+
},
19+
callbackUrl: 'https://example.com',
20+
sharedSecretKey: 'shared-secret-key'
21+
};
22+
23+
describe('createWebhookSubscription', () => {
24+
test('should create a webhook subscription', async () => {
25+
const { status, data } = await tfvApi.createWebhookSubscription(BW_ACCOUNT_ID, webhookSubscriptionRequestSchema);
26+
27+
expect(status).toEqual(201);
28+
expect(data.id).toBeString();
29+
expect(data.accountId).toHaveLength(7);
30+
expect(data.callbackUrl).toStartWith('http');
31+
expect(data.type).toBeOneOf(Object.values(WebhookSubscriptionTypeEnum));
32+
expect(data.basicAuthentication!.username).toBeString();
33+
expect(data.basicAuthentication!.password).toBeString();
34+
expect(data.createdDate).toBeDateString();
35+
expect(data.modifiedDate).toBeDateString();
36+
});
37+
});
38+
39+
describe('deleteWebhookSubscription', () => {
40+
test('should delete a webhook subscription', async () => {
41+
const { status } = await tfvApi.deleteWebhookSubscription(BW_ACCOUNT_ID, 'test-id-1234');
42+
43+
expect(status).toEqual(204);
44+
});
45+
});
46+
47+
describe('getTollFreeVerificationStatus', () => {
48+
test('should get toll-free verification status', async () => {
49+
const { status, data } = await tfvApi.getTollFreeVerificationStatus(BW_ACCOUNT_ID, '+18005551234');
50+
51+
expect(status).toEqual(200);
52+
expect(data.phoneNumber).toBeString();
53+
expect(data.status).toBeOneOf(Object.values(TfvStatusEnum));
54+
expect(data.internalTicketNumber).toBeString();
55+
expect(data.declineReasonDescription).toBeString();
56+
expect(data.resubmitAllowed).toBeBoolean();
57+
expect(data.createdDateTime).toBeDateString();
58+
expect(data.modifiedDateTime).toBeDateString();
59+
});
60+
});
61+
62+
describe('listTollFreeUseCases', () => {
63+
test('should list toll-free use cases', async () => {
64+
const { status, data } = await tfvApi.listTollFreeUseCases();
65+
66+
expect(status).toEqual(200);
67+
expect(data).toBeInstanceOf(Array);
68+
});
69+
});
70+
71+
describe('listWebhookSubscriptions', () => {
72+
test('should list webhook subscriptions', async () => {
73+
const { status, data } = await tfvApi.listWebhookSubscriptions(BW_ACCOUNT_ID);
74+
75+
expect(status).toEqual(200);
76+
expect(data).toHaveProperty('links');
77+
expect(data.links!.first).toBeString();
78+
expect(data.links!.next).toBeString();
79+
expect(data.links!.previous).toBeString();
80+
expect(data.links!.last).toBeString();
81+
expect(data.errors).toBeInstanceOf(Array);
82+
expect(data.errors[0]!.code).toBeNumber();
83+
expect(data.errors[0]!.description).toBeString();
84+
expect(data.errors[0]!.telephoneNumbers).toBeInstanceOf(Array);
85+
expect(data.errors[0]!.telephoneNumbers[0].telephoneNumber).toBeString();
86+
expect(data.data).toBeInstanceOf(Array);
87+
expect(data.data[0]!.id).toBeString();
88+
expect(data.data[0]!.accountId).toBeString();
89+
expect(data.data[0]!.callbackUrl).toBeString();
90+
expect(data.data[0]!.type).toBeOneOf(Object.values(WebhookSubscriptionTypeEnum));
91+
expect(data.data[0]!.basicAuthentication.username).toBeString();
92+
expect(data.data[0]!.basicAuthentication.password).toBeString();
93+
expect(data.data[0]!.createdDate).toBeDateString();
94+
expect(data.data[0]!.modifiedDate).toBeDateString();
95+
});
96+
});
97+
98+
describe('requestTollFreeVerification', () => {
99+
test('should request toll-free verification', async () => {
100+
const verificationRequest = {
101+
businessAddress: {
102+
name: 'name',
103+
addr1: 'addr1',
104+
addr2: 'addr2',
105+
city: 'city',
106+
state: 'state',
107+
zip: 'zip',
108+
url: 'https://example.com'
109+
},
110+
businessContact: {
111+
firstName: 'first-name',
112+
lastName: 'last-name',
113+
114+
phoneNumber: '+19195551234'
115+
},
116+
messageVolume: 12,
117+
phoneNumbers: ['+18005551234'],
118+
useCase: 'useCase',
119+
useCaseSummary: 'useCaseSummary',
120+
productionMessageContent: 'productionMessageContent',
121+
optInWorkflow: {
122+
description: 'description',
123+
imageUrls: ['https://example.com']
124+
},
125+
additionalInformation: 'additionalInformation',
126+
isvReseller: 'isvReseller'
127+
};
128+
const { status } = await tfvApi.requestTollFreeVerification(BW_ACCOUNT_ID, verificationRequest);
129+
130+
expect(status).toEqual(202);
131+
});
132+
});
133+
134+
describe('updateTollFreeVerificationRequest', () => {
135+
test('should update toll-free verification request', async () => {
136+
const tfvSubmissionWrapper = {
137+
submission: undefined
138+
};
139+
const { status } = await tfvApi.updateTollFreeVerificationRequest(BW_ACCOUNT_ID, '+18005551234', tfvSubmissionWrapper);
140+
expect(status).toEqual(202);
141+
});
142+
});
143+
144+
describe('updateWebhookSubscription', () => {
145+
test('should update webhook subscription', async () => {
146+
const { status, data } = await tfvApi.updateWebhookSubscription(BW_ACCOUNT_ID, 'test-id-1234', webhookSubscriptionRequestSchema);
147+
148+
expect(status).toEqual(200);
149+
expect(data.id).toBeString();
150+
expect(data.accountId).toHaveLength(7);
151+
expect(data.callbackUrl).toStartWith('http');
152+
expect(data.type).toBeOneOf(Object.values(WebhookSubscriptionTypeEnum));
153+
expect(data.basicAuthentication!.username).toBeString();
154+
expect(data.basicAuthentication!.password).toBeString();
155+
expect(data.createdDate).toBeDateString();
156+
expect(data.modifiedDate).toBeDateString();
157+
});
158+
});
159+
});

0 commit comments

Comments
 (0)