Skip to content

Commit 42e0360

Browse files
committed
smoke and unit tests for api
1 parent 27dee81 commit 42e0360

File tree

2 files changed

+128
-119
lines changed

2 files changed

+128
-119
lines changed
Lines changed: 64 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,85 @@
11
//@ts-nocheck
22
import { PhoneNumberLookupApi } from "../../api";
33
import { Configuration } from "../../configuration";
4-
import { LookupRequest, LookupStatusEnum } from "../../models";
5-
import { sleep } from "../callUtils";
4+
import {
5+
AsyncLookupRequest,
6+
CompletedLookupStatusEnum,
7+
InProgressLookupStatusEnum,
8+
LatestMessageDeliveryStatusEnum,
9+
LineTypeEnum,
10+
SyncLookupRequest
11+
} from "../../models";
12+
import { sleep } from '../callUtils';
613

714
describe('PhoneNumberLookupApi', () => {
8-
jest.setTimeout(10000);
9-
const config = new Configuration({username: BW_USERNAME, password: BW_PASSWORD});
15+
jest.setTimeout(20000);
16+
const config = new Configuration({
17+
username: BW_USERNAME,
18+
password: BW_PASSWORD
19+
});
1020
const phoneNumberLookupApi = new PhoneNumberLookupApi(config);
1121

12-
let lookupRequestId: string;
22+
const phoneNumbers = [BW_NUMBER, USER_NUMBER];
1323

14-
describe('createLookup', () => {
15-
test('should lookup phone number', async () => {
16-
const lookupRequest: LookupRequest = {
17-
tns: [BW_NUMBER]
18-
};
24+
describe('createGetAsyncBulkLookup', () => {
25+
test('should create and get an async bulk lookup request', async () => {
26+
const request: AsyncLookupRequest = { phoneNumbers };
1927

20-
const { status, data } = await phoneNumberLookupApi.createLookup(BW_ACCOUNT_ID, lookupRequest);
28+
const { status: createStatus, data: createData }
29+
= await phoneNumberLookupApi.createAsyncBulkLookup(BW_ACCOUNT_ID, request);
2130

22-
expect(status).toEqual(202);
23-
expect(data.requestId).toHaveLength(36);
24-
expect(data.status).toBeOneOf(Object.values(LookupStatusEnum));
31+
expect(createStatus).toEqual(202);
32+
expect(createData.links[0]).toBeDefined();
33+
expect(createData.links[0].rel).toBeString();
34+
expect(createData.links[0].href).toBeString();
35+
expect(createData.links[0].method).toBeString();
36+
expect(createData.data.requestId).toBeString();
37+
expect(createData.data.status).toBeOneOf(Object.values(InProgressLookupStatusEnum));
38+
expect(createData.errors).toBeInstanceOf(Array);
2539

26-
lookupRequestId = data.requestId!;
27-
await sleep(1);
28-
});
29-
});
40+
const requestId = createData.data.requestId;
41+
await sleep(10);
3042

31-
describe('getLookupStatus', () => {
32-
test('should get lookup status', async () => {
33-
const { status, data } = await phoneNumberLookupApi.getLookupStatus(BW_ACCOUNT_ID, lookupRequestId);
43+
const { status: getStatus, data: getData }
44+
= await phoneNumberLookupApi.getAsyncBulkLookup(BW_ACCOUNT_ID, requestId);
3445

35-
expect(status).toEqual(200);
36-
expect(data.requestId).toEqual(lookupRequestId);
37-
expect(data.status).toBeOneOf(Object.values(LookupStatusEnum));
38-
expect(data.result).toBeInstanceOf(Array);
39-
expect(data.result![0]['Response Code']).toBeInteger();
40-
expect(data.result![0]['E.164 Format']).toEqual(BW_NUMBER);
46+
expect(getStatus).toEqual(200);
47+
expect(getData.links[0]).toBeDefined();
48+
expect(getData.links[0].rel).toBeString();
49+
expect(getData.links[0].href).toBeString();
50+
expect(getData.links[0].method).toBeString();
51+
expect(getData.data.requestId).toEqual(requestId);
52+
expect(getData.data.status).toBeOneOf(Object.values(InProgressLookupStatusEnum));
53+
expect(getData.data.results).toBeInstanceOf(Array);
54+
expect(getData.data.results[0]).toBeDefined();
55+
expect(getData.data.results[0].phoneNumber).toBeString();
56+
expect(getData.data.results[0].lineType).toBeOneOf(Object.values(LineTypeEnum));
57+
expect(getData.data.results[0].messagingProvider).toBeString();
58+
expect(getData.data.results[0].voiceProvider).toBeString();
59+
expect(getData.data.results[0].countryCodeA3).toBeString();
4160
});
4261
});
4362

44-
describe('HTTP Errors', () => {
45-
test('400', async () => {
46-
const lookupRequest: LookupRequest = {
47-
tns: ['+1invalid']
48-
};
49-
50-
try {
51-
await phoneNumberLookupApi.createLookup(BW_ACCOUNT_ID, lookupRequest);
52-
} catch (e) {
53-
expect(e.response.status).toEqual(400);
54-
}
55-
});
63+
describe('createSyncLookup', () => {
64+
test('should create a sync lookup', async () => {
65+
const request: SyncLookupRequest = { phoneNumbers };
5666

57-
test('401', async () => {
58-
const configBad = new Configuration({username: UNAUTHORIZED_USERNAME, password: UNAUTHORIZED_PASSWORD});
59-
const phoneNumberLookupApiBad = new PhoneNumberLookupApi(configBad);
67+
const { status, data } = await phoneNumberLookupApi.createSyncLookup(BW_ACCOUNT_ID, request);
6068

61-
const lookupRequest: LookupRequest = {
62-
tns: [BW_NUMBER]
63-
};
64-
65-
try {
66-
await phoneNumberLookupApiBad.createLookup(BW_ACCOUNT_ID, lookupRequest);
67-
} catch (e) {
68-
expect(e.response.status).toEqual(401);
69-
}
70-
});
71-
72-
test('404', async () => {
73-
const requestIdBad = '00000000-0000-0000-0000-000000000000';
74-
75-
try {
76-
await phoneNumberLookupApi.getLookupStatus(BW_ACCOUNT_ID, requestIdBad);
77-
} catch (e) {
78-
expect(e.response.status).toEqual(404);
79-
}
69+
expect(status).toEqual(200);
70+
expect(data.links[0]).toBeDefined();
71+
expect(data.links[0].rel).toBeString();
72+
expect(data.links[0].href).toBeString();
73+
expect(data.links[0].method).toBeString();
74+
expect(data.data.requestId).toBeString();
75+
expect(data.data.status).toBeOneOf(Object.values(CompletedLookupStatusEnum));
76+
expect(data.data.results).toBeInstanceOf(Array);
77+
expect(data.data.results[0]).toBeDefined();
78+
expect(data.data.results[0].phoneNumber).toBeString();
79+
expect(data.data.results[0].lineType).toBeOneOf(Object.values(LineTypeEnum));
80+
expect(data.data.results[0].messagingProvider).toBeString();
81+
expect(data.data.results[0].voiceProvider).toBeString();
82+
expect(data.data.results[0].countryCodeA3).toBeString();
8083
});
8184
});
8285
});
Lines changed: 64 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
//@ts-nocheck
22
import { PhoneNumberLookupApi } from "../../../api";
33
import { Configuration } from "../../../configuration";
4-
import { LookupRequest, LookupStatusEnum } from "../../../models";
4+
import {
5+
AsyncLookupRequest,
6+
CompletedLookupStatusEnum,
7+
InProgressLookupStatusEnum,
8+
LatestMessageDeliveryStatusEnum,
9+
LineTypeEnum,
10+
SyncLookupRequest
11+
} from "../../../models";
512

613
describe('PhoneNumberLookupApi', () => {
714
const config = new Configuration({
@@ -11,76 +18,75 @@ describe('PhoneNumberLookupApi', () => {
1118
});
1219
const phoneNumberLookupApi = new PhoneNumberLookupApi(config);
1320

14-
const lookupRequestId = '1234';
21+
const phoneNumbers = [BW_NUMBER, USER_NUMBER];
22+
const requestId = '123e4567-e89b-12d3-a456-426614174000';
1523

16-
describe('createLookup', () => {
17-
test('should lookup phone number', async () => {
18-
const lookupRequest: LookupRequest = {
19-
tns: [BW_NUMBER]
20-
};
24+
describe('createAsyncBulkLookup', () => {
25+
test('should create an async bulk lookup request', async () => {
26+
const request: AsyncLookupRequest = { phoneNumbers };
2127

22-
const { status, data } = await phoneNumberLookupApi.createLookup(BW_ACCOUNT_ID, lookupRequest);
28+
const { status, data } = await phoneNumberLookupApi.createAsyncBulkLookup(BW_ACCOUNT_ID, request);
2329

2430
expect(status).toEqual(202);
25-
expect(data.requestId).toHaveLength(36);
26-
expect(data.status).toBeOneOf(Object.values(LookupStatusEnum));
31+
expect(data.links[0]).toBeDefined();
32+
expect(data.links[0].rel).toBeString();
33+
expect(data.links[0].href).toBeString();
34+
expect(data.links[0].method).toBeString();
35+
expect(data.data.requestId).toBeString();
36+
expect(data.data.status).toBeOneOf(Object.values(InProgressLookupStatusEnum));
37+
expect(data.errors).toBeInstanceOf(Array);
2738
});
2839
});
2940

30-
describe('getLookupStatus', () => {
31-
test('should get lookup status', async () => {
32-
const { status, data } = await phoneNumberLookupApi.getLookupStatus(
33-
BW_ACCOUNT_ID,
34-
lookupRequestId,
35-
{ headers: { Prefer: 'example=lookupMultipleNumbersPartialCompleteExample' } }
36-
);
41+
describe('createSyncLookup', () => {
42+
test('should create a sync lookup', async () => {
43+
const request: SyncLookupRequest = { phoneNumbers };
44+
45+
const { status, data } = await phoneNumberLookupApi.createSyncLookup(BW_ACCOUNT_ID, request);
3746

3847
expect(status).toEqual(200);
39-
expect(data.requestId).toHaveLength(36);
40-
expect(data.status).toBeOneOf(Object.values(LookupStatusEnum));
41-
expect(data.result).toBeInstanceOf(Array);
42-
expect(data.result![0]).toContainAllKeys([
43-
'Response Code',
44-
'Message',
45-
'E.164 Format',
46-
'Formatted',
47-
'Country',
48-
'Line Type',
49-
'Line Provider',
50-
'Mobile Country Code',
51-
'Mobile Network Code',
52-
]);
53-
expect(data.result![0]['Response Code']).toBeInteger();
54-
expect(data.result![0].Message).toBeString();
55-
expect(data.result![0]['E.164 Format']).toHaveLength(12);
56-
expect(data.result![0].Formatted).toHaveLength(14);
57-
expect(data.result![0].Country).toBeString();
58-
expect(data.result![0]['Line Type']).toBeString();
59-
expect(data.result![0]['Line Provider']).toBeString();
60-
expect(data.result![0]['Mobile Country Code']).toBeString();
61-
expect(data.result![0]['Mobile Network Code']).toBeString();
62-
expect(data.failedTelephoneNumbers).toBeInstanceOf(Array);
63-
expect(data.failedTelephoneNumbers![0]).toBeString();
48+
expect(data.links[0]).toBeDefined();
49+
expect(data.links[0].rel).toBeString();
50+
expect(data.links[0].href).toBeString();
51+
expect(data.links[0].method).toBeString();
52+
expect(data.data.requestId).toBeString();
53+
expect(data.data.status).toBeOneOf(Object.values(CompletedLookupStatusEnum));
54+
expect(data.data.results).toBeInstanceOf(Array);
55+
expect(data.data.results[0]).toBeDefined();
56+
expect(data.data.results[0].phoneNumber).toBeString();
57+
expect(data.data.results[0].lineType).toBeOneOf(Object.values(LineTypeEnum));
58+
expect(data.data.results[0].messagingProvider).toBeString();
59+
expect(data.data.results[0].voiceProvider).toBeString();
60+
expect(data.data.results[0].countryCodeA3).toBeString();
61+
expect(data.data.results[0].latestMessageDeliveryStatus).toBeOneOf(Object.values(LatestMessageDeliveryStatusEnum));
62+
expect(data.data.results[0].initialMessageDeliveryStatusDate).toBeDateString();
63+
expect(data.data.results[0].latestMessageDeliveryStatusDate).toBeDateString();
64+
expect(data.errors).toBeInstanceOf(Array);
6465
});
6566
});
6667

67-
describe('HTTP Errors', () => {
68-
test('400', async () => {
69-
try {
70-
await phoneNumberLookupApi.createLookup(BW_ACCOUNT_ID, {});
71-
} catch (e) {
72-
expect(e.response.status).toEqual(400);
73-
}
74-
});
68+
describe('getAsyncBulkLookup', () => {
69+
test('should get an async bulk lookup', async () => {
70+
const { status, data } = await phoneNumberLookupApi.getAsyncBulkLookup(BW_ACCOUNT_ID, requestId);
7571

76-
test('401', async () => {
77-
const unauthorizedConfig = new Configuration({ basePath: 'http://127.0.0.1:4010' });
78-
const unauthorizedPhoneNumberLookupApi = new PhoneNumberLookupApi(unauthorizedConfig);
79-
try {
80-
await unauthorizedPhoneNumberLookupApi.getLookupStatus(BW_ACCOUNT_ID, lookupRequestId);
81-
} catch (e) {
82-
expect(e.response.status).toEqual(401);
83-
}
72+
expect(status).toEqual(200);
73+
expect(data.links[0]).toBeDefined();
74+
expect(data.links[0].rel).toBeString();
75+
expect(data.links[0].href).toBeString();
76+
expect(data.links[0].method).toBeString();
77+
expect(data.data.requestId).toBeString();
78+
expect(data.data.status).toBeOneOf(Object.values(InProgressLookupStatusEnum));
79+
expect(data.data.results).toBeInstanceOf(Array);
80+
expect(data.data.results[0]).toBeDefined();
81+
expect(data.data.results[0].phoneNumber).toBeString();
82+
expect(data.data.results[0].lineType).toBeOneOf(Object.values(LineTypeEnum));
83+
expect(data.data.results[0].messagingProvider).toBeString();
84+
expect(data.data.results[0].voiceProvider).toBeString();
85+
expect(data.data.results[0].countryCodeA3).toBeString();
86+
expect(data.data.results[0].latestMessageDeliveryStatus).toBeOneOf(Object.values(LatestMessageDeliveryStatusEnum));
87+
expect(data.data.results[0].initialMessageDeliveryStatusDate).toBeDateString();
88+
expect(data.data.results[0].latestMessageDeliveryStatusDate).toBeDateString();
89+
expect(data.errors).toBeInstanceOf(Array);
8490
});
8591
});
8692
});

0 commit comments

Comments
 (0)