@adtrackify/at-service-common 3.18.0 → 3.18.1
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.
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +684 -0
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +411 -0
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -0
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +582 -0
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -0
- package/dist/cjs/clients/generic/sqs-bundled-client.js +56 -18
- package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -1
- package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +10 -1
- package/dist/cjs/utils/compression.d.ts +1 -1
- package/dist/cjs/utils/compression.js +1 -1
- package/dist/cjs/utils/compression.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +684 -0
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +412 -1
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -0
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +580 -0
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -0
- package/dist/esm/clients/generic/sqs-bundled-client.js +56 -18
- package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -1
- package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +10 -1
- package/dist/esm/utils/compression.d.ts +1 -1
- package/dist/esm/utils/compression.js +2 -2
- package/dist/esm/utils/compression.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqs-bundled-client.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/clients/sqs-bundled-client.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqs-bundled-client.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/clients/sqs-bundled-client.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -333,6 +333,46 @@ describe('unbundleRecords', () => {
|
|
|
333
333
|
expect(stats.bundledRecords).toBe(0);
|
|
334
334
|
});
|
|
335
335
|
});
|
|
336
|
+
describe('timeout protection', () => {
|
|
337
|
+
it('respects timeoutMs option', async () => {
|
|
338
|
+
const items = [makeTestEvent('1')];
|
|
339
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
340
|
+
const record = makeSqsRecord({ messageBody: envelope });
|
|
341
|
+
const { items: result, failedMessageIds } = await (0, sqs_unbundle_1.unbundleRecords)([record], {
|
|
342
|
+
timeoutMs: 5000,
|
|
343
|
+
});
|
|
344
|
+
expect(result).toHaveLength(1);
|
|
345
|
+
expect(failedMessageIds).toHaveLength(0);
|
|
346
|
+
});
|
|
347
|
+
it('passes timeoutMs through to decompression', async () => {
|
|
348
|
+
const items = [makeTestEvent('1')];
|
|
349
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
350
|
+
const record = makeSqsRecord({ messageBody: envelope });
|
|
351
|
+
await expect((0, sqs_unbundle_1.unbundleRecords)([record], { timeoutMs: 30000 })).resolves.toBeDefined();
|
|
352
|
+
});
|
|
353
|
+
it('CompressionTimeoutError is properly exported', () => {
|
|
354
|
+
const error = new compression_1.CompressionTimeoutError(compression_1.CompressionOperation.DECOMPRESS, 5000);
|
|
355
|
+
expect(error).toBeInstanceOf(Error);
|
|
356
|
+
expect(error.name).toBe('CompressionTimeoutError');
|
|
357
|
+
expect(error.operation).toBe('decompress');
|
|
358
|
+
expect(error.timeoutMs).toBe(5000);
|
|
359
|
+
expect(error.message).toContain('timed out after 5000ms');
|
|
360
|
+
});
|
|
361
|
+
it('includes timeout info in failure logging', async () => {
|
|
362
|
+
const corruptEnvelope = {
|
|
363
|
+
v: 1,
|
|
364
|
+
c: sqs_bundled_client_types_1.CompressionAlgorithm.ZSTD,
|
|
365
|
+
n: 1,
|
|
366
|
+
s: 100,
|
|
367
|
+
p: 'dGhpcyBpcyBub3QgdmFsaWQgenN0ZA==',
|
|
368
|
+
};
|
|
369
|
+
const record = makeSqsRecord({ messageBody: corruptEnvelope }, 'msg-timeout-test');
|
|
370
|
+
const { failedMessageIds } = await (0, sqs_unbundle_1.unbundleRecords)([record], {
|
|
371
|
+
timeoutMs: 5000,
|
|
372
|
+
});
|
|
373
|
+
expect(failedMessageIds).toContain('msg-timeout-test');
|
|
374
|
+
});
|
|
375
|
+
});
|
|
336
376
|
describe('end-to-end: producer bundle → consumer unbundle', () => {
|
|
337
377
|
it('simulates full bundle → unbundle flow with compression', async () => {
|
|
338
378
|
const producerItems = Array.from({ length: 100 }, (_, i) => makeTestEvent(`event-${i}`, 'page_view', i * 1.5));
|
|
@@ -373,5 +413,376 @@ describe('unbundleRecords', () => {
|
|
|
373
413
|
expect(recordMap.get(items[4])).toBe('legacy-msg-2');
|
|
374
414
|
});
|
|
375
415
|
});
|
|
416
|
+
describe('consumer edge cases - real sequences', () => {
|
|
417
|
+
it('handles 500 items in single compressed bundle with exact verification', async () => {
|
|
418
|
+
const originalItems = Array.from({ length: 500 }, (_, i) => ({
|
|
419
|
+
id: `item-${i}`,
|
|
420
|
+
name: `Event ${i}`,
|
|
421
|
+
data: { nested: { value: i * 1.5 } },
|
|
422
|
+
timestamp: Date.now() + i,
|
|
423
|
+
}));
|
|
424
|
+
const envelope = await makeCompressedEnvelope(originalItems);
|
|
425
|
+
const record = makeSqsRecord({ messageBody: envelope }, 'msg-500-items');
|
|
426
|
+
const { items, recordMap, stats } = await (0, sqs_unbundle_1.unbundleRecords)([record]);
|
|
427
|
+
expect(items).toHaveLength(500);
|
|
428
|
+
expect(items[0]).toEqual(originalItems[0]);
|
|
429
|
+
expect(items[249]).toEqual(originalItems[249]);
|
|
430
|
+
expect(items[499]).toEqual(originalItems[499]);
|
|
431
|
+
expect(stats.bundledRecords).toBe(1);
|
|
432
|
+
expect(stats.totalItems).toBe(500);
|
|
433
|
+
for (let i = 0; i < 500; i++) {
|
|
434
|
+
expect(items[i].id).toBe(`item-${i}`);
|
|
435
|
+
expect(items[i].data.nested.value).toBe(i * 1.5);
|
|
436
|
+
}
|
|
437
|
+
for (const item of items) {
|
|
438
|
+
expect(recordMap.get(item)).toBe('msg-500-items');
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
it('handles multiple bundles in single batch with different item counts', async () => {
|
|
442
|
+
const counts = [10, 50, 100, 200, 300];
|
|
443
|
+
const records = [];
|
|
444
|
+
const expectedTotal = counts.reduce((sum, c) => sum + c, 0);
|
|
445
|
+
for (let bundleIdx = 0; bundleIdx < counts.length; bundleIdx++) {
|
|
446
|
+
const count = counts[bundleIdx];
|
|
447
|
+
const items = Array.from({ length: count }, (_, i) => ({
|
|
448
|
+
bundleId: bundleIdx,
|
|
449
|
+
itemIdx: i,
|
|
450
|
+
payload: `bundle-${bundleIdx}-item-${i}`,
|
|
451
|
+
}));
|
|
452
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
453
|
+
records.push(makeSqsRecord({ messageBody: envelope }, `msg-bundle-${bundleIdx}`));
|
|
454
|
+
}
|
|
455
|
+
const { items, recordMap, stats } = await (0, sqs_unbundle_1.unbundleRecords)(records);
|
|
456
|
+
expect(items).toHaveLength(expectedTotal);
|
|
457
|
+
expect(stats.totalItems).toBe(expectedTotal);
|
|
458
|
+
expect(stats.bundledRecords).toBe(5);
|
|
459
|
+
expect(stats.legacyRecords).toBe(0);
|
|
460
|
+
expect(stats.failedRecords).toBe(0);
|
|
461
|
+
const itemsByBundle = new Map();
|
|
462
|
+
for (const item of items) {
|
|
463
|
+
const expectedMsgId = `msg-bundle-${item.bundleId}`;
|
|
464
|
+
expect(recordMap.get(item)).toBe(expectedMsgId);
|
|
465
|
+
itemsByBundle.set(item.bundleId, (itemsByBundle.get(item.bundleId) ?? 0) + 1);
|
|
466
|
+
}
|
|
467
|
+
expect(itemsByBundle.get(0)).toBe(10);
|
|
468
|
+
expect(itemsByBundle.get(1)).toBe(50);
|
|
469
|
+
expect(itemsByBundle.get(2)).toBe(100);
|
|
470
|
+
expect(itemsByBundle.get(3)).toBe(200);
|
|
471
|
+
expect(itemsByBundle.get(4)).toBe(300);
|
|
472
|
+
});
|
|
473
|
+
it('handles realistic 80% bundled / 20% legacy migration ratio', async () => {
|
|
474
|
+
const records = [];
|
|
475
|
+
const totalMessages = 100;
|
|
476
|
+
const bundledCount = 80;
|
|
477
|
+
const legacyCount = 20;
|
|
478
|
+
const itemsPerBundle = 25;
|
|
479
|
+
for (let i = 0; i < bundledCount; i++) {
|
|
480
|
+
const items = Array.from({ length: itemsPerBundle }, (_, j) => ({
|
|
481
|
+
type: 'bundled',
|
|
482
|
+
bundleIdx: i,
|
|
483
|
+
itemIdx: j,
|
|
484
|
+
}));
|
|
485
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
486
|
+
records.push(makeSqsRecord({ messageBody: envelope }, `msg-bundled-${i}`));
|
|
487
|
+
}
|
|
488
|
+
for (let i = 0; i < legacyCount; i++) {
|
|
489
|
+
const legacyEvent = {
|
|
490
|
+
type: 'legacy',
|
|
491
|
+
legacyIdx: i,
|
|
492
|
+
itemIdx: 0,
|
|
493
|
+
};
|
|
494
|
+
records.push(makeSqsRecord(legacyEvent, `msg-legacy-${i}`));
|
|
495
|
+
}
|
|
496
|
+
const shuffled = [...records].sort(() => Math.random() - 0.5);
|
|
497
|
+
const { items, stats, recordMap } = await (0, sqs_unbundle_1.unbundleRecords)(shuffled);
|
|
498
|
+
expect(stats.totalRecords).toBe(totalMessages);
|
|
499
|
+
expect(stats.bundledRecords).toBe(bundledCount);
|
|
500
|
+
expect(stats.legacyRecords).toBe(legacyCount);
|
|
501
|
+
expect(stats.failedRecords).toBe(0);
|
|
502
|
+
expect(items).toHaveLength(bundledCount * itemsPerBundle + legacyCount);
|
|
503
|
+
expect(stats.totalItems).toBe(2020);
|
|
504
|
+
const bundledItems = items.filter((i) => i.type === 'bundled');
|
|
505
|
+
const legacyItems = items.filter((i) => i.type === 'legacy');
|
|
506
|
+
expect(bundledItems).toHaveLength(bundledCount * itemsPerBundle);
|
|
507
|
+
expect(legacyItems).toHaveLength(legacyCount);
|
|
508
|
+
for (const item of bundledItems) {
|
|
509
|
+
expect(recordMap.get(item)).toBe(`msg-bundled-${item.bundleIdx}`);
|
|
510
|
+
}
|
|
511
|
+
for (const item of legacyItems) {
|
|
512
|
+
expect(recordMap.get(item)).toBe(`msg-legacy-${item.legacyIdx}`);
|
|
513
|
+
}
|
|
514
|
+
});
|
|
515
|
+
it('preserves Unicode characters through ZSTD compression', async () => {
|
|
516
|
+
const unicodeItems = [
|
|
517
|
+
{
|
|
518
|
+
id: 'emoji',
|
|
519
|
+
content: '🎉🚀💻🌍✨ Party time!',
|
|
520
|
+
description: 'Emojis should survive compression',
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
id: 'chinese',
|
|
524
|
+
content: '中文测试:欢迎使用我们的服务',
|
|
525
|
+
description: 'Chinese characters',
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
id: 'arabic',
|
|
529
|
+
content: 'العربية: مرحبا بكم في خدمتنا',
|
|
530
|
+
description: 'Arabic text (RTL)',
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
id: 'math',
|
|
534
|
+
content: '∑∫∂∇ε → ∞ × ∈ ⊆ ∀∃',
|
|
535
|
+
description: 'Mathematical symbols',
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
id: 'mixed',
|
|
539
|
+
content: 'Hello 世界 🌏 مرحبا ∑ Привет',
|
|
540
|
+
description: 'Mixed scripts',
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
id: 'special',
|
|
544
|
+
content: '️️️️️️️️️️️️️️️️',
|
|
545
|
+
description: 'Unicode edge cases',
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
id: 'japanese',
|
|
549
|
+
content: 'こんにちは世界 ひらがな カタカナ 漢字',
|
|
550
|
+
description: 'Japanese hiragana, katakana, kanji',
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
id: 'korean',
|
|
554
|
+
content: '안녕하세요 세계',
|
|
555
|
+
description: 'Korean hangul',
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
id: 'cyrillic',
|
|
559
|
+
content: 'Привет мир! Это тест.',
|
|
560
|
+
description: 'Russian Cyrillic',
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
id: 'combining',
|
|
564
|
+
content: 'e\u0301 n\u0303 c\u0327',
|
|
565
|
+
description: 'Combining diacritical marks',
|
|
566
|
+
},
|
|
567
|
+
];
|
|
568
|
+
const envelope = await makeCompressedEnvelope(unicodeItems);
|
|
569
|
+
const record = makeSqsRecord({ messageBody: envelope }, 'msg-unicode');
|
|
570
|
+
const { items } = await (0, sqs_unbundle_1.unbundleRecords)([record]);
|
|
571
|
+
expect(items).toHaveLength(unicodeItems.length);
|
|
572
|
+
for (let i = 0; i < unicodeItems.length; i++) {
|
|
573
|
+
expect(items[i].id).toBe(unicodeItems[i].id);
|
|
574
|
+
expect(items[i].content).toBe(unicodeItems[i].content);
|
|
575
|
+
expect(items[i].description).toBe(unicodeItems[i].description);
|
|
576
|
+
const originalBytes = Buffer.from(unicodeItems[i].content, 'utf8');
|
|
577
|
+
const recoveredBytes = Buffer.from(items[i].content, 'utf8');
|
|
578
|
+
expect(recoveredBytes.equals(originalBytes)).toBe(true);
|
|
579
|
+
}
|
|
580
|
+
});
|
|
581
|
+
it('preserves deeply nested structures (10 levels)', async () => {
|
|
582
|
+
function createDeepStructure(depth, maxDepth = 10) {
|
|
583
|
+
const node = {
|
|
584
|
+
level: depth,
|
|
585
|
+
data: `level-${depth}-data-${Math.random().toString(36).slice(2)}`,
|
|
586
|
+
};
|
|
587
|
+
if (depth < maxDepth) {
|
|
588
|
+
node.child = createDeepStructure(depth + 1, maxDepth);
|
|
589
|
+
node.siblings = [
|
|
590
|
+
createDeepStructure(depth + 1, Math.min(depth + 3, maxDepth)),
|
|
591
|
+
createDeepStructure(depth + 1, Math.min(depth + 2, maxDepth)),
|
|
592
|
+
];
|
|
593
|
+
}
|
|
594
|
+
return node;
|
|
595
|
+
}
|
|
596
|
+
const deepItems = Array.from({ length: 10 }, (_, i) => ({
|
|
597
|
+
id: `deep-${i}`,
|
|
598
|
+
nested: createDeepStructure(0, 10),
|
|
599
|
+
arrays: [
|
|
600
|
+
[[[[['deeply', 'nested', 'array']]], [{ inner: { value: i } }]]],
|
|
601
|
+
],
|
|
602
|
+
}));
|
|
603
|
+
const envelope = await makeCompressedEnvelope(deepItems);
|
|
604
|
+
const record = makeSqsRecord({ messageBody: envelope }, 'msg-deep');
|
|
605
|
+
const { items } = await (0, sqs_unbundle_1.unbundleRecords)([record]);
|
|
606
|
+
expect(items).toHaveLength(10);
|
|
607
|
+
for (let i = 0; i < 10; i++) {
|
|
608
|
+
expect(JSON.stringify(items[i])).toBe(JSON.stringify(deepItems[i]));
|
|
609
|
+
expect(items[i].nested.level).toBe(0);
|
|
610
|
+
expect(items[i].nested.child?.level).toBe(1);
|
|
611
|
+
expect(items[i].nested.child?.child?.child?.level).toBe(3);
|
|
612
|
+
expect(items[i].arrays[0][0][0][0][0][0]).toBe('deeply');
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
it('handles binary-like string data (base64 encoded)', async () => {
|
|
616
|
+
const binaryItems = [
|
|
617
|
+
{
|
|
618
|
+
id: 'small-binary',
|
|
619
|
+
base64Data: Buffer.from('Small binary payload').toString('base64'),
|
|
620
|
+
size: 'small',
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
id: 'medium-binary',
|
|
624
|
+
base64Data: Buffer.from('x'.repeat(1000)).toString('base64'),
|
|
625
|
+
size: 'medium',
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
id: 'image-simulation',
|
|
629
|
+
base64Data: Buffer.from([
|
|
630
|
+
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0xff, 0xd8, 0xff, 0xe0,
|
|
631
|
+
]).toString('base64'),
|
|
632
|
+
size: 'binary-header',
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
id: 'random-bytes',
|
|
636
|
+
base64Data: Buffer.from(Array.from({ length: 256 }, () => Math.floor(Math.random() * 256))).toString('base64'),
|
|
637
|
+
size: 'random',
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
id: 'all-byte-values',
|
|
641
|
+
base64Data: Buffer.from(Array.from({ length: 256 }, (_, i) => i)).toString('base64'),
|
|
642
|
+
size: 'full-range',
|
|
643
|
+
},
|
|
644
|
+
];
|
|
645
|
+
const envelope = await makeCompressedEnvelope(binaryItems);
|
|
646
|
+
const record = makeSqsRecord({ messageBody: envelope }, 'msg-binary');
|
|
647
|
+
const { items } = await (0, sqs_unbundle_1.unbundleRecords)([record]);
|
|
648
|
+
expect(items).toHaveLength(binaryItems.length);
|
|
649
|
+
for (let i = 0; i < binaryItems.length; i++) {
|
|
650
|
+
expect(items[i].id).toBe(binaryItems[i].id);
|
|
651
|
+
expect(items[i].base64Data).toBe(binaryItems[i].base64Data);
|
|
652
|
+
const originalDecoded = Buffer.from(binaryItems[i].base64Data, 'base64');
|
|
653
|
+
const recoveredDecoded = Buffer.from(items[i].base64Data, 'base64');
|
|
654
|
+
expect(recoveredDecoded.equals(originalDecoded)).toBe(true);
|
|
655
|
+
}
|
|
656
|
+
});
|
|
657
|
+
it('handles concurrent unbundling stress test (100 records in parallel)', async () => {
|
|
658
|
+
const recordCount = 100;
|
|
659
|
+
const records = [];
|
|
660
|
+
for (let i = 0; i < recordCount; i++) {
|
|
661
|
+
const itemsInBundle = 10 + (i % 20);
|
|
662
|
+
const items = Array.from({ length: itemsInBundle }, (_, j) => ({
|
|
663
|
+
recordIdx: i,
|
|
664
|
+
itemIdx: j,
|
|
665
|
+
uniqueId: `r${i}-i${j}`,
|
|
666
|
+
timestamp: Date.now() + i * 1000 + j,
|
|
667
|
+
data: `payload-${i}-${j}-${Math.random().toString(36).slice(2)}`,
|
|
668
|
+
}));
|
|
669
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
670
|
+
records.push(makeSqsRecord({ messageBody: envelope }, `stress-msg-${i}`));
|
|
671
|
+
}
|
|
672
|
+
const startTime = Date.now();
|
|
673
|
+
const { items, recordMap, stats, failedMessageIds } = await (0, sqs_unbundle_1.unbundleRecords)(records);
|
|
674
|
+
const duration = Date.now() - startTime;
|
|
675
|
+
expect(failedMessageIds).toHaveLength(0);
|
|
676
|
+
expect(stats.failedRecords).toBe(0);
|
|
677
|
+
expect(stats.bundledRecords).toBe(recordCount);
|
|
678
|
+
const seenUniqueIds = new Set();
|
|
679
|
+
for (const item of items) {
|
|
680
|
+
expect(seenUniqueIds.has(item.uniqueId)).toBe(false);
|
|
681
|
+
seenUniqueIds.add(item.uniqueId);
|
|
682
|
+
const expectedMsgId = `stress-msg-${item.recordIdx}`;
|
|
683
|
+
expect(recordMap.get(item)).toBe(expectedMsgId);
|
|
684
|
+
expect(item.itemIdx).toBeGreaterThanOrEqual(0);
|
|
685
|
+
expect(item.itemIdx).toBeLessThan(30);
|
|
686
|
+
}
|
|
687
|
+
const expectedTotal = Array.from({ length: recordCount }, (_, i) => 10 + (i % 20)).reduce((a, b) => a + b, 0);
|
|
688
|
+
expect(items).toHaveLength(expectedTotal);
|
|
689
|
+
expect(stats.totalItems).toBe(expectedTotal);
|
|
690
|
+
console.log(`Unbundled ${recordCount} records (${stats.totalItems} items) in ${duration}ms`);
|
|
691
|
+
});
|
|
692
|
+
it('handles items with all JSON primitive types', async () => {
|
|
693
|
+
const primitiveItems = [
|
|
694
|
+
{
|
|
695
|
+
id: 'primitives',
|
|
696
|
+
stringVal: 'hello',
|
|
697
|
+
numberVal: 42,
|
|
698
|
+
floatVal: 3.14159265359,
|
|
699
|
+
boolTrue: true,
|
|
700
|
+
boolFalse: false,
|
|
701
|
+
nullVal: null,
|
|
702
|
+
emptyString: '',
|
|
703
|
+
zero: 0,
|
|
704
|
+
negativeNum: -999,
|
|
705
|
+
largeNum: Number.MAX_SAFE_INTEGER,
|
|
706
|
+
smallNum: Number.MIN_SAFE_INTEGER,
|
|
707
|
+
scientificNotation: 1.23e10,
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
id: 'arrays',
|
|
711
|
+
emptyArray: [],
|
|
712
|
+
numberArray: [1, 2, 3],
|
|
713
|
+
mixedArray: [1, 'two', true, null],
|
|
714
|
+
nestedArray: [[1, 2], [3, 4], [[5]]],
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
id: 'objects',
|
|
718
|
+
emptyObject: {},
|
|
719
|
+
nestedObject: { a: { b: { c: 1 } } },
|
|
720
|
+
arrayOfObjects: [{ x: 1 }, { y: 2 }],
|
|
721
|
+
},
|
|
722
|
+
];
|
|
723
|
+
const envelope = await makeCompressedEnvelope(primitiveItems);
|
|
724
|
+
const record = makeSqsRecord({ messageBody: envelope }, 'msg-primitives');
|
|
725
|
+
const { items } = await (0, sqs_unbundle_1.unbundleRecords)([record]);
|
|
726
|
+
expect(items).toHaveLength(3);
|
|
727
|
+
expect(JSON.stringify(items)).toBe(JSON.stringify(primitiveItems));
|
|
728
|
+
});
|
|
729
|
+
it('maintains item order across multiple bundles', async () => {
|
|
730
|
+
const records = [];
|
|
731
|
+
let globalIdx = 0;
|
|
732
|
+
for (let bundleIdx = 0; bundleIdx < 10; bundleIdx++) {
|
|
733
|
+
const itemCount = 10 + bundleIdx * 5;
|
|
734
|
+
const items = Array.from({ length: itemCount }, () => ({
|
|
735
|
+
globalOrder: globalIdx++,
|
|
736
|
+
bundle: bundleIdx,
|
|
737
|
+
}));
|
|
738
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
739
|
+
records.push(makeSqsRecord({ messageBody: envelope }, `order-msg-${bundleIdx}`));
|
|
740
|
+
}
|
|
741
|
+
const { items } = await (0, sqs_unbundle_1.unbundleRecords)(records);
|
|
742
|
+
const bundleGroups = new Map();
|
|
743
|
+
for (const item of items) {
|
|
744
|
+
if (!bundleGroups.has(item.bundle)) {
|
|
745
|
+
bundleGroups.set(item.bundle, []);
|
|
746
|
+
}
|
|
747
|
+
bundleGroups.get(item.bundle)?.push(item.globalOrder);
|
|
748
|
+
}
|
|
749
|
+
for (const [, orders] of bundleGroups) {
|
|
750
|
+
for (let i = 1; i < orders.length; i++) {
|
|
751
|
+
expect(orders[i]).toBeGreaterThan(orders[i - 1]);
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
});
|
|
755
|
+
it('handles edge case: single item bundles', async () => {
|
|
756
|
+
const records = await Promise.all(Array.from({ length: 50 }, async (_, i) => {
|
|
757
|
+
const items = [{ id: `single-${i}`, value: i }];
|
|
758
|
+
const envelope = await makeCompressedEnvelope(items);
|
|
759
|
+
return makeSqsRecord({ messageBody: envelope }, `single-msg-${i}`);
|
|
760
|
+
}));
|
|
761
|
+
const { items, stats, recordMap } = await (0, sqs_unbundle_1.unbundleRecords)(records);
|
|
762
|
+
expect(items).toHaveLength(50);
|
|
763
|
+
expect(stats.bundledRecords).toBe(50);
|
|
764
|
+
expect(stats.totalItems).toBe(50);
|
|
765
|
+
for (let i = 0; i < 50; i++) {
|
|
766
|
+
const item = items.find((x) => x.value === i);
|
|
767
|
+
expect(item).toBeDefined();
|
|
768
|
+
if (!item)
|
|
769
|
+
throw new Error(`Expected item with value ${i} to be found`);
|
|
770
|
+
expect(recordMap.get(item)).toMatch(/single-msg-\d+/);
|
|
771
|
+
}
|
|
772
|
+
});
|
|
773
|
+
it('handles edge case: empty arrays in bundles', async () => {
|
|
774
|
+
const emptyEnvelope = {
|
|
775
|
+
v: 1,
|
|
776
|
+
c: sqs_bundled_client_types_1.CompressionAlgorithm.NONE,
|
|
777
|
+
n: 0,
|
|
778
|
+
p: [],
|
|
779
|
+
};
|
|
780
|
+
const record = makeSqsRecord({ messageBody: emptyEnvelope }, 'msg-empty');
|
|
781
|
+
const { items, stats } = await (0, sqs_unbundle_1.unbundleRecords)([record]);
|
|
782
|
+
expect(items).toHaveLength(0);
|
|
783
|
+
expect(stats.bundledRecords).toBe(1);
|
|
784
|
+
expect(stats.totalItems).toBe(0);
|
|
785
|
+
});
|
|
786
|
+
});
|
|
376
787
|
});
|
|
377
788
|
//# sourceMappingURL=sqs-unbundle.spec.js.map
|