@sipgate/integration-bridge 1.0.31 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/schemas/contacts.d.ts +10 -0
  2. package/dist/schemas/contacts.js +3 -0
  3. package/dist/schemas/contacts.js.map +1 -1
  4. package/dist/util/http/rate-limited-axios.js +2 -1
  5. package/dist/util/http/rate-limited-axios.js.map +1 -1
  6. package/dist/util/http/retrying-axios.js +3 -1
  7. package/dist/util/http/retrying-axios.js.map +1 -1
  8. package/package.json +15 -10
  9. package/dist/controllers/task.controller.test.d.ts +0 -1
  10. package/dist/controllers/task.controller.test.js +0 -123
  11. package/dist/controllers/task.controller.test.js.map +0 -1
  12. package/dist/index.test.d.ts +0 -1
  13. package/dist/index.test.js +0 -21
  14. package/dist/index.test.js.map +0 -1
  15. package/dist/models/controller.model.test.d.ts +0 -1
  16. package/dist/models/controller.model.test.js +0 -412
  17. package/dist/models/controller.model.test.js.map +0 -1
  18. package/dist/util/anonymize-key.test.d.ts +0 -1
  19. package/dist/util/anonymize-key.test.js +0 -19
  20. package/dist/util/anonymize-key.test.js.map +0 -1
  21. package/dist/util/call-event.test.d.ts +0 -1
  22. package/dist/util/call-event.test.js +0 -87
  23. package/dist/util/call-event.test.js.map +0 -1
  24. package/dist/util/callEventHelper.test.d.ts +0 -1
  25. package/dist/util/callEventHelper.test.js +0 -113
  26. package/dist/util/callEventHelper.test.js.map +0 -1
  27. package/dist/util/contact.util.test.d.ts +0 -1
  28. package/dist/util/contact.util.test.js +0 -125
  29. package/dist/util/contact.util.test.js.map +0 -1
  30. package/dist/util/http/pagination.test.d.ts +0 -1
  31. package/dist/util/http/pagination.test.js +0 -414
  32. package/dist/util/http/pagination.test.js.map +0 -1
  33. package/dist/util/phone-number-utils.test.d.ts +0 -1
  34. package/dist/util/phone-number-utils.test.js +0 -56
  35. package/dist/util/phone-number-utils.test.js.map +0 -1
@@ -1,414 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- const pagination_1 = require("./pagination");
20
- function* fetchDataGen(chunkSize, items) {
21
- let itemsLeft = items;
22
- let idx = 0;
23
- while (itemsLeft > 0) {
24
- const n = Math.max(0, Math.min(chunkSize, itemsLeft));
25
- yield new Array(n).fill(0).map((x) => ({
26
- name: `idx${idx}`,
27
- value: idx++,
28
- }));
29
- itemsLeft -= n;
30
- }
31
- }
32
- describe('pagination (accumulating)', () => {
33
- it('should resolve all pages (mod != 0)', () => __awaiter(void 0, void 0, void 0, function* () {
34
- const chunkSize = 3;
35
- const totalCount = 8;
36
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
37
- const fetchData = () => Promise.resolve({
38
- data: {
39
- entries: fetchDataIterator.next().value,
40
- },
41
- status: 200,
42
- statusText: 'OK',
43
- headers: {},
44
- config: {},
45
- });
46
- const mergeData = jest
47
- .fn()
48
- .mockImplementation((data, newData) => [
49
- ...(data || []),
50
- ...(newData || []),
51
- ]);
52
- const extractDataFromResponse = jest
53
- .fn()
54
- .mockImplementation((response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; });
55
- const isEof = jest
56
- .fn()
57
- .mockImplementation((response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; });
58
- const invokeNextRequest = jest
59
- .fn()
60
- .mockImplementation((previousResponse) => fetchData());
61
- const data = yield (0, pagination_1.paginate)(mergeData, extractDataFromResponse, isEof, invokeNextRequest, 0, []);
62
- expect(data).toHaveLength(totalCount);
63
- expect(data).toEqual([
64
- { name: 'idx0', value: 0 },
65
- { name: 'idx1', value: 1 },
66
- { name: 'idx2', value: 2 },
67
- { name: 'idx3', value: 3 },
68
- { name: 'idx4', value: 4 },
69
- { name: 'idx5', value: 5 },
70
- { name: 'idx6', value: 6 },
71
- { name: 'idx7', value: 7 },
72
- ]);
73
- expect(mergeData).toHaveBeenCalledTimes(3);
74
- expect(extractDataFromResponse).toHaveBeenCalledTimes(3);
75
- expect(isEof).toHaveBeenCalledTimes(3);
76
- expect(invokeNextRequest).toHaveBeenCalledTimes(3);
77
- }));
78
- it('should resolve all pages (mod == 0)', () => __awaiter(void 0, void 0, void 0, function* () {
79
- const chunkSize = 3;
80
- const totalCount = 9;
81
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
82
- const fetchData = () => Promise.resolve({
83
- data: {
84
- entries: fetchDataIterator.next().value,
85
- },
86
- status: 200,
87
- statusText: 'OK',
88
- headers: {},
89
- config: {
90
- headers: {},
91
- },
92
- });
93
- const data = yield (0, pagination_1.paginate)((data, newData) => [...(data || []), ...(newData || [])], (response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; }, (previousResponse) => fetchData(), 0, []);
94
- expect(data).toHaveLength(totalCount);
95
- expect(data).toEqual([
96
- { name: 'idx0', value: 0 },
97
- { name: 'idx1', value: 1 },
98
- { name: 'idx2', value: 2 },
99
- { name: 'idx3', value: 3 },
100
- { name: 'idx4', value: 4 },
101
- { name: 'idx5', value: 5 },
102
- { name: 'idx6', value: 6 },
103
- { name: 'idx7', value: 7 },
104
- { name: 'idx8', value: 8 },
105
- ]);
106
- }));
107
- it('should resolve all pages (count < chunkSize)', () => __awaiter(void 0, void 0, void 0, function* () {
108
- const chunkSize = 5;
109
- const totalCount = 3;
110
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
111
- const fetchData = () => Promise.resolve({
112
- data: {
113
- entries: fetchDataIterator.next().value,
114
- },
115
- status: 200,
116
- statusText: 'OK',
117
- headers: {},
118
- config: {
119
- headers: {},
120
- },
121
- });
122
- const data = yield (0, pagination_1.paginate)((data, newData) => [...(data || []), ...(newData || [])], (response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; }, (previousResponse) => fetchData(), 0, []);
123
- expect(data).toHaveLength(totalCount);
124
- expect(data).toEqual([
125
- { name: 'idx0', value: 0 },
126
- { name: 'idx1', value: 1 },
127
- { name: 'idx2', value: 2 },
128
- ]);
129
- }));
130
- it('should reject on error', () => __awaiter(void 0, void 0, void 0, function* () {
131
- const fetchData = () => Promise.reject({
132
- data: undefined,
133
- status: 500,
134
- statusText: 'ERROR',
135
- headers: {},
136
- config: {},
137
- });
138
- yield expect((0, pagination_1.paginate)((data, newData) => [...(data || []), ...(newData || [])], (response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < 3; }, (previousResponse) => fetchData(), 0, [])).rejects.toHaveProperty('status', 500);
139
- }));
140
- it('should retry on error if retryOnError is provided', () => __awaiter(void 0, void 0, void 0, function* () {
141
- const chunkSize = 3;
142
- const totalCount = 5;
143
- let errored = false;
144
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
145
- const fetchData = () => {
146
- if (!errored) {
147
- errored = true;
148
- return Promise.reject({
149
- data: undefined,
150
- status: 500,
151
- statusText: 'ERROR',
152
- headers: {},
153
- config: {
154
- headers: {},
155
- },
156
- });
157
- }
158
- else {
159
- return Promise.resolve({
160
- data: {
161
- entries: fetchDataIterator.next().value,
162
- },
163
- status: 200,
164
- statusText: 'OK',
165
- headers: {},
166
- config: {
167
- headers: {},
168
- },
169
- });
170
- }
171
- };
172
- const data = yield (0, pagination_1.paginate)((data, newData) => [...(data || []), ...(newData || [])], (response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; }, (previousResponse) => fetchData(), 0, [], (e) => Promise.resolve(true));
173
- expect(data).toHaveLength(totalCount);
174
- expect(data).toEqual([
175
- { name: 'idx0', value: 0 },
176
- { name: 'idx1', value: 1 },
177
- { name: 'idx2', value: 2 },
178
- { name: 'idx3', value: 3 },
179
- { name: 'idx4', value: 4 },
180
- ]);
181
- }));
182
- });
183
- describe('pagination (generator)', () => {
184
- it('should yield all pages (mod !== 0)', () => __awaiter(void 0, void 0, void 0, function* () {
185
- var _a, e_1, _b, _c;
186
- const chunkSize = 3;
187
- const totalCount = 8;
188
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
189
- const fetchData = () => Promise.resolve({
190
- data: {
191
- entries: fetchDataIterator.next().value,
192
- },
193
- status: 200,
194
- statusText: 'OK',
195
- headers: {},
196
- config: {},
197
- });
198
- const extractDataFromResponse = jest
199
- .fn()
200
- .mockImplementation((response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; });
201
- const isEof = jest
202
- .fn()
203
- .mockImplementation((response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; });
204
- const invokeNextRequest = jest
205
- .fn()
206
- .mockImplementation((previousResponse) => fetchData());
207
- const iterator = (0, pagination_1.paginateGenerator)(extractDataFromResponse, isEof, invokeNextRequest);
208
- let data = [];
209
- try {
210
- for (var _d = true, iterator_1 = __asyncValues(iterator), iterator_1_1; iterator_1_1 = yield iterator_1.next(), _a = iterator_1_1.done, !_a;) {
211
- _c = iterator_1_1.value;
212
- _d = false;
213
- try {
214
- const chunkData = _c;
215
- data = [...data, ...(chunkData !== null && chunkData !== void 0 ? chunkData : {})];
216
- }
217
- finally {
218
- _d = true;
219
- }
220
- }
221
- }
222
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
223
- finally {
224
- try {
225
- if (!_d && !_a && (_b = iterator_1.return)) yield _b.call(iterator_1);
226
- }
227
- finally { if (e_1) throw e_1.error; }
228
- }
229
- expect(data).toHaveLength(totalCount);
230
- expect(data).toEqual([
231
- { name: 'idx0', value: 0 },
232
- { name: 'idx1', value: 1 },
233
- { name: 'idx2', value: 2 },
234
- { name: 'idx3', value: 3 },
235
- { name: 'idx4', value: 4 },
236
- { name: 'idx5', value: 5 },
237
- { name: 'idx6', value: 6 },
238
- { name: 'idx7', value: 7 },
239
- ]);
240
- expect(extractDataFromResponse).toHaveBeenCalledTimes(3);
241
- expect(isEof).toHaveBeenCalledTimes(3);
242
- expect(invokeNextRequest).toHaveBeenCalledTimes(3);
243
- }));
244
- it('should resolve all pages (mod == 0)', () => __awaiter(void 0, void 0, void 0, function* () {
245
- var _e, e_2, _f, _g;
246
- const chunkSize = 3;
247
- const totalCount = 9;
248
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
249
- const fetchData = () => Promise.resolve({
250
- data: {
251
- entries: fetchDataIterator.next().value,
252
- },
253
- status: 200,
254
- statusText: 'OK',
255
- headers: {},
256
- config: {
257
- headers: {},
258
- },
259
- });
260
- const iterator = (0, pagination_1.paginateGenerator)((response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; }, (previousResponse) => fetchData());
261
- let data = [];
262
- try {
263
- for (var _h = true, iterator_2 = __asyncValues(iterator), iterator_2_1; iterator_2_1 = yield iterator_2.next(), _e = iterator_2_1.done, !_e;) {
264
- _g = iterator_2_1.value;
265
- _h = false;
266
- try {
267
- const chunkData = _g;
268
- data = [...data, ...(chunkData !== null && chunkData !== void 0 ? chunkData : [])];
269
- }
270
- finally {
271
- _h = true;
272
- }
273
- }
274
- }
275
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
276
- finally {
277
- try {
278
- if (!_h && !_e && (_f = iterator_2.return)) yield _f.call(iterator_2);
279
- }
280
- finally { if (e_2) throw e_2.error; }
281
- }
282
- expect(data).toHaveLength(totalCount);
283
- expect(data).toEqual([
284
- { name: 'idx0', value: 0 },
285
- { name: 'idx1', value: 1 },
286
- { name: 'idx2', value: 2 },
287
- { name: 'idx3', value: 3 },
288
- { name: 'idx4', value: 4 },
289
- { name: 'idx5', value: 5 },
290
- { name: 'idx6', value: 6 },
291
- { name: 'idx7', value: 7 },
292
- { name: 'idx8', value: 8 },
293
- ]);
294
- }));
295
- it('should resolve all pages (count < chunkSize)', () => __awaiter(void 0, void 0, void 0, function* () {
296
- var _j, e_3, _k, _l;
297
- const chunkSize = 5;
298
- const totalCount = 3;
299
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
300
- const fetchData = () => Promise.resolve({
301
- data: {
302
- entries: fetchDataIterator.next().value,
303
- },
304
- status: 200,
305
- statusText: 'OK',
306
- headers: {},
307
- config: {
308
- headers: {},
309
- },
310
- });
311
- const iterator = (0, pagination_1.paginateGenerator)((response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; }, (previousResponse) => fetchData());
312
- let data = [];
313
- try {
314
- for (var _m = true, iterator_3 = __asyncValues(iterator), iterator_3_1; iterator_3_1 = yield iterator_3.next(), _j = iterator_3_1.done, !_j;) {
315
- _l = iterator_3_1.value;
316
- _m = false;
317
- try {
318
- const chunkData = _l;
319
- data = [...data, ...(chunkData !== null && chunkData !== void 0 ? chunkData : [])];
320
- }
321
- finally {
322
- _m = true;
323
- }
324
- }
325
- }
326
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
327
- finally {
328
- try {
329
- if (!_m && !_j && (_k = iterator_3.return)) yield _k.call(iterator_3);
330
- }
331
- finally { if (e_3) throw e_3.error; }
332
- }
333
- expect(data).toHaveLength(totalCount);
334
- expect(data).toEqual([
335
- { name: 'idx0', value: 0 },
336
- { name: 'idx1', value: 1 },
337
- { name: 'idx2', value: 2 },
338
- ]);
339
- }));
340
- it('should throw on error', () => __awaiter(void 0, void 0, void 0, function* () {
341
- const fetchData = () => Promise.reject({
342
- data: undefined,
343
- status: 500,
344
- statusText: 'ERROR',
345
- headers: {},
346
- config: {},
347
- });
348
- const iterator = (0, pagination_1.paginateGenerator)((response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < 3; }, (previousResponse) => fetchData());
349
- yield expect(iterator.next()).rejects.toHaveProperty('status', 500);
350
- }));
351
- it('should retry on error if retryOnError is provided', () => __awaiter(void 0, void 0, void 0, function* () {
352
- var _o, e_4, _p, _q;
353
- const chunkSize = 3;
354
- const totalCount = 5;
355
- let errored = false;
356
- const fetchDataIterator = fetchDataGen(chunkSize, totalCount);
357
- const fetchData = () => {
358
- if (!errored) {
359
- errored = true;
360
- return Promise.reject({
361
- data: undefined,
362
- status: 500,
363
- statusText: 'ERROR',
364
- headers: {},
365
- config: {},
366
- });
367
- }
368
- else {
369
- return Promise.resolve({
370
- data: {
371
- entries: fetchDataIterator.next().value,
372
- },
373
- status: 200,
374
- statusText: 'OK',
375
- headers: {},
376
- config: {
377
- headers: {},
378
- },
379
- });
380
- }
381
- };
382
- const iterator = yield (0, pagination_1.paginateGenerator)((response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries; }, (response) => { var _a, _b; return (((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length) || 0) < chunkSize; }, (previousResponse) => fetchData(), 0, (e) => Promise.resolve(true));
383
- let data = [];
384
- try {
385
- for (var _r = true, iterator_4 = __asyncValues(iterator), iterator_4_1; iterator_4_1 = yield iterator_4.next(), _o = iterator_4_1.done, !_o;) {
386
- _q = iterator_4_1.value;
387
- _r = false;
388
- try {
389
- const chunkData = _q;
390
- data = [...data, ...(chunkData !== null && chunkData !== void 0 ? chunkData : [])];
391
- }
392
- finally {
393
- _r = true;
394
- }
395
- }
396
- }
397
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
398
- finally {
399
- try {
400
- if (!_r && !_o && (_p = iterator_4.return)) yield _p.call(iterator_4);
401
- }
402
- finally { if (e_4) throw e_4.error; }
403
- }
404
- expect(data).toHaveLength(totalCount);
405
- expect(data).toEqual([
406
- { name: 'idx0', value: 0 },
407
- { name: 'idx1', value: 1 },
408
- { name: 'idx2', value: 2 },
409
- { name: 'idx3', value: 3 },
410
- { name: 'idx4', value: 4 },
411
- ]);
412
- }));
413
- });
414
- //# sourceMappingURL=pagination.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.test.js","sourceRoot":"","sources":["../../../src/util/http/pagination.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const models_1 = require("../models");
4
- const phone_number_utils_1 = require("./phone-number-utils");
5
- describe('convertPhoneNumberToE164', () => {
6
- it('converts local phone numbers', () => {
7
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '015799912345' }, 'de-DE').e164).toEqual('+4915799912345');
8
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '0495 46.68.28' }, 'fr-BE').e164).toEqual('+32495466828');
9
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '26954490' }, 'fr-LU').e164).toEqual('+35226954490');
10
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '08-663 88 95 ' }, 'se-SE').e164).toEqual('+4686638895');
11
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '801 111 111' }, 'pl-PL').e164).toEqual('+48801111111');
12
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '913 693 210' }, 'es-ES').e164).toEqual('+34913693210');
13
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '415 (555) SHOE' }, 'en-US').e164).toEqual('+14155557463');
14
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '0173 CHOO CHOO' }, 'de-DE').e164).toEqual('+4917324662466');
15
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '415 CHOO CHOO' }, 'en-US').e164).toEqual('+141524662466');
16
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '(212) 366-1182' }, 'en-US').e164).toEqual('+12123661182');
17
- });
18
- it('converts international phone numbers', () => {
19
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '+48 601 777 257' }, 'de-DE').e164).toEqual('+48601777257');
20
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '+49 1579 99 12345' }, 'fr-LU').e164).toEqual('+4915799912345');
21
- });
22
- it('sanitizes phone numbers', () => {
23
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '0157-99912345' }, 'de-DE').e164).toEqual('+4915799912345');
24
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: ' 0157-999 12345' }, 'de-DE').e164).toEqual('+4915799912345');
25
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: ' 0157-999-12345' }, 'de-DE').e164).toEqual('+4915799912345');
26
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '0157/99912345' }, 'de-DE').e164).toEqual('+4915799912345');
27
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '01579 (991) 2-3 4 5' }, 'de-DE').e164).toEqual('+4915799912345');
28
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '+49 (1579) 991/2-3 4 5' }, 'de-DE').e164).toEqual('+4915799912345');
29
- });
30
- it('recovers invalid locale', () => {
31
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '015799912345' }, 'de-DE').e164).toEqual('+4915799912345');
32
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '015799912345' }, 'de').e164).toEqual('+4915799912345');
33
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '015799912345' }, 'De').e164).toEqual('+4915799912345');
34
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '015799912345' }, 'DE').e164).toEqual('+4915799912345');
35
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '015799912345' }, 'de-DE').e164).toEqual('+4915799912345');
36
- });
37
- it('returns initial phone number on invalid locale', () => {
38
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '801 111 111' }, '').e164).toEqual('801 111 111');
39
- });
40
- it('returns initial phone number on invalid phone number', () => {
41
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: 'invalid' }, 'de-DE').e164).toEqual('invalid');
42
- });
43
- it('formats a phone number from another region', () => {
44
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '+442012341234' }, 'de-DE').localized).toEqual('+44 20 1234 1234');
45
- });
46
- it('formats a direct dial correctly', () => {
47
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '22' }, 'de-DE').e164).toEqual('22');
48
- });
49
- it('returns national number for localized if ignoreRegion flag is set', () => {
50
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '+353 86 412 0894' }, 'de-DE', true).localized).toEqual('086 412 0894');
51
- });
52
- it('returns national number for localized if same region', () => {
53
- expect((0, phone_number_utils_1.parsePhoneNumber)({ label: models_1.PhoneNumberLabel.WORK, phoneNumber: '+353 86 412 0894' }, 'en-IE').localized).toEqual('086 412 0894');
54
- });
55
- });
56
- //# sourceMappingURL=phone-number-utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phone-number-utils.test.js","sourceRoot":"","sources":["../../src/util/phone-number-utils.test.ts"],"names":[],"mappings":"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"}