Skip to content

Commit f424efc

Browse files
committed
add applyRemoteEvents()
1 parent 2c2ff35 commit f424efc

File tree

1 file changed

+53
-119
lines changed

1 file changed

+53
-119
lines changed

packages/firestore/test/unit/local/local_store_indexeddb.test.ts

Lines changed: 53 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@ class AsyncLocalStoreTester {
112112
return this.lastTargetId;
113113
}
114114

115+
async applyRemoteEvents(...remoteEvents: RemoteEvent[]): Promise<void> {
116+
for (const remoteEvent of remoteEvents) {
117+
await this.applyRemoteEvent(remoteEvent);
118+
}
119+
}
120+
115121
async applyRemoteEvent(remoteEvent: RemoteEvent): Promise<void> {
116122
this.prepareNextStep();
117123
this.lastChanges = await localStoreApplyRemoteEventToLocalCache(
@@ -499,21 +505,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
499505
relativeIndexReadCostPerDocument: 2
500506
});
501507

502-
docAddedRemoteEvent(doc('coll/a', 10, { matches: true }), [targetId]);
503-
504-
await test.applyRemoteEvent(
505-
docAddedRemoteEvent(doc('coll/a', 10, { matches: true }), [targetId])
506-
);
507-
await test.applyRemoteEvent(
508-
docAddedRemoteEvent(doc('coll/b', 10, { matches: false }), [targetId])
509-
);
510-
await test.applyRemoteEvent(
511-
docAddedRemoteEvent(doc('coll/c', 10, { matches: false }), [targetId])
512-
);
513-
await test.applyRemoteEvent(
514-
docAddedRemoteEvent(doc('coll/d', 10, { matches: false }), [targetId])
515-
);
516-
await test.applyRemoteEvent(
508+
await test.applyRemoteEvents(
509+
docAddedRemoteEvent(doc('coll/a', 10, { matches: true }), [targetId]),
510+
docAddedRemoteEvent(doc('coll/b', 10, { matches: false }), [targetId]),
511+
docAddedRemoteEvent(doc('coll/c', 10, { matches: false }), [targetId]),
512+
docAddedRemoteEvent(doc('coll/d', 10, { matches: false }), [targetId]),
517513
docAddedRemoteEvent(doc('coll/e', 10, { matches: true }), [targetId])
518514
);
519515

@@ -544,19 +540,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
544540
relativeIndexReadCostPerDocument: 2
545541
});
546542

547-
await test.applyRemoteEvent(
548-
docAddedRemoteEvent(doc('coll/a', 10, { count: 5 }), [targetId])
549-
);
550-
await test.applyRemoteEvent(
551-
docAddedRemoteEvent(doc('coll/b', 10, { count: 1 }), [targetId])
552-
);
553-
await test.applyRemoteEvent(
554-
docAddedRemoteEvent(doc('coll/c', 10, { count: 0 }), [targetId])
555-
);
556-
await test.applyRemoteEvent(
557-
docAddedRemoteEvent(doc('coll/d', 10, { count: 1 }), [targetId])
558-
);
559-
await test.applyRemoteEvent(
543+
await test.applyRemoteEvents(
544+
docAddedRemoteEvent(doc('coll/a', 10, { count: 5 }), [targetId]),
545+
docAddedRemoteEvent(doc('coll/b', 10, { count: 1 }), [targetId]),
546+
docAddedRemoteEvent(doc('coll/c', 10, { count: 0 }), [targetId]),
547+
docAddedRemoteEvent(doc('coll/d', 10, { count: 1 }), [targetId]),
560548
docAddedRemoteEvent(doc('coll/e', 10, { count: 3 }), [targetId])
561549
);
562550

@@ -585,19 +573,13 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
585573
relativeIndexReadCostPerDocument: 5
586574
});
587575

588-
await test.applyRemoteEvent(
589-
docAddedRemoteEvent(doc('coll/a', 10, { array: [2, 7] }), [targetId])
590-
);
591-
await test.applyRemoteEvent(
592-
docAddedRemoteEvent(doc('coll/b', 10, { array: [] }), [targetId])
593-
);
594-
await test.applyRemoteEvent(
595-
docAddedRemoteEvent(doc('coll/c', 10, { array: [3] }), [targetId])
596-
);
597-
await test.applyRemoteEvent(
598-
docAddedRemoteEvent(doc('coll/d', 10, { array: [2, 10, 20] }), [targetId])
599-
);
600-
await test.applyRemoteEvent(
576+
await test.applyRemoteEvents(
577+
docAddedRemoteEvent(doc('coll/a', 10, { array: [2, 7] }), [targetId]),
578+
docAddedRemoteEvent(doc('coll/b', 10, { array: [] }), [targetId]),
579+
docAddedRemoteEvent(doc('coll/c', 10, { array: [3] }), [targetId]),
580+
docAddedRemoteEvent(doc('coll/d', 10, { array: [2, 10, 20] }), [
581+
targetId
582+
]),
601583
docAddedRemoteEvent(doc('coll/e', 10, { array: [2, 0, 8] }), [targetId])
602584
);
603585

@@ -626,19 +608,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
626608
relativeIndexReadCostPerDocument: 2
627609
});
628610

629-
await test.applyRemoteEvent(
630-
docAddedRemoteEvent(doc('coll/a', 10, { matches: 'foo' }), [targetId])
631-
);
632-
await test.applyRemoteEvent(
633-
docAddedRemoteEvent(doc('coll/b', 10, { matches: '' }), [targetId])
634-
);
635-
await test.applyRemoteEvent(
636-
docAddedRemoteEvent(doc('coll/c', 10, { matches: 'bar' }), [targetId])
637-
);
638-
await test.applyRemoteEvent(
639-
docAddedRemoteEvent(doc('coll/d', 10, { matches: 7 }), [targetId])
640-
);
641-
await test.applyRemoteEvent(
611+
await test.applyRemoteEvents(
612+
docAddedRemoteEvent(doc('coll/a', 10, { matches: 'foo' }), [targetId]),
613+
docAddedRemoteEvent(doc('coll/b', 10, { matches: '' }), [targetId]),
614+
docAddedRemoteEvent(doc('coll/c', 10, { matches: 'bar' }), [targetId]),
615+
docAddedRemoteEvent(doc('coll/d', 10, { matches: 7 }), [targetId]),
642616
docAddedRemoteEvent(doc('coll/e', 10, { matches: 'foo' }), [targetId])
643617
);
644618

@@ -670,19 +644,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
670644
relativeIndexReadCostPerDocument: 2
671645
});
672646

673-
await test.applyRemoteEvent(
674-
docAddedRemoteEvent(doc('coll/a', 10, { value: 5 }), [targetId])
675-
);
676-
await test.applyRemoteEvent(
677-
docAddedRemoteEvent(doc('coll/b', 10, { value: 3 }), [targetId])
678-
);
679-
await test.applyRemoteEvent(
680-
docAddedRemoteEvent(doc('coll/c', 10, { value: 3 }), [targetId])
681-
);
682-
await test.applyRemoteEvent(
683-
docAddedRemoteEvent(doc('coll/d', 10, { value: 3 }), [targetId])
684-
);
685-
await test.applyRemoteEvent(
647+
await test.applyRemoteEvents(
648+
docAddedRemoteEvent(doc('coll/a', 10, { value: 5 }), [targetId]),
649+
docAddedRemoteEvent(doc('coll/b', 10, { value: 3 }), [targetId]),
650+
docAddedRemoteEvent(doc('coll/c', 10, { value: 3 }), [targetId]),
651+
docAddedRemoteEvent(doc('coll/d', 10, { value: 3 }), [targetId]),
686652
docAddedRemoteEvent(doc('coll/e', 10, { value: 2 }), [targetId])
687653
);
688654

@@ -717,19 +683,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
717683
relativeIndexReadCostPerDocument: 2
718684
});
719685

720-
await test.applyRemoteEvent(
721-
docAddedRemoteEvent(doc('coll/a', 10, { value: 1 }), [targetId1])
722-
);
723-
await test.applyRemoteEvent(
724-
docAddedRemoteEvent(doc('coll/b', 10, { value: 8 }), [targetId1])
725-
);
726-
await test.applyRemoteEvent(
727-
docAddedRemoteEvent(doc('coll/c', 10, { value: 'string' }), [targetId1])
728-
);
729-
await test.applyRemoteEvent(
730-
docAddedRemoteEvent(doc('coll/d', 10, { value: false }), [targetId1])
731-
);
732-
await test.applyRemoteEvent(
686+
await test.applyRemoteEvents(
687+
docAddedRemoteEvent(doc('coll/a', 10, { value: 1 }), [targetId1]),
688+
docAddedRemoteEvent(doc('coll/b', 10, { value: 8 }), [targetId1]),
689+
docAddedRemoteEvent(doc('coll/c', 10, { value: 'string' }), [targetId1]),
690+
docAddedRemoteEvent(doc('coll/d', 10, { value: false }), [targetId1]),
733691
docAddedRemoteEvent(doc('coll/e', 10, { value: 0 }), [targetId1])
734692
);
735693

@@ -748,19 +706,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
748706
test.assertQueryReturned('coll/a', 'coll/e');
749707

750708
const targetId2 = await test.allocateQuery(query2);
751-
await test.applyRemoteEvent(
752-
docAddedRemoteEvent(doc('foo/a', 10, { value: 5 }), [targetId2])
753-
);
754-
await test.applyRemoteEvent(
755-
docAddedRemoteEvent(doc('foo/b', 10, { value: Number.NaN }), [targetId2])
756-
);
757-
await test.applyRemoteEvent(
758-
docAddedRemoteEvent(doc('foo/c', 10, { value: Number.NaN }), [targetId2])
759-
);
760-
await test.applyRemoteEvent(
761-
docAddedRemoteEvent(doc('foo/d', 10, { value: Number.NaN }), [targetId2])
762-
);
763-
await test.applyRemoteEvent(
709+
await test.applyRemoteEvents(
710+
docAddedRemoteEvent(doc('foo/a', 10, { value: 5 }), [targetId2]),
711+
docAddedRemoteEvent(doc('foo/b', 10, { value: Number.NaN }), [targetId2]),
712+
docAddedRemoteEvent(doc('foo/c', 10, { value: Number.NaN }), [targetId2]),
713+
docAddedRemoteEvent(doc('foo/d', 10, { value: Number.NaN }), [targetId2]),
764714
docAddedRemoteEvent(doc('foo/e', 10, { value: 'string' }), [targetId2])
765715
);
766716

@@ -784,21 +734,13 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
784734
relativeIndexReadCostPerDocument: 2
785735
});
786736

787-
await test.applyRemoteEvent(
737+
await test.applyRemoteEvents(
788738
docAddedRemoteEvent(doc('coll/a', 10, { value: [8, 1, 'string'] }), [
789739
targetId
790-
])
791-
);
792-
await test.applyRemoteEvent(
793-
docAddedRemoteEvent(doc('coll/b', 10, { value: [] }), [targetId])
794-
);
795-
await test.applyRemoteEvent(
796-
docAddedRemoteEvent(doc('coll/c', 10, { value: [3] }), [targetId])
797-
);
798-
await test.applyRemoteEvent(
799-
docAddedRemoteEvent(doc('coll/d', 10, { value: [0, 5] }), [targetId])
800-
);
801-
await test.applyRemoteEvent(
740+
]),
741+
docAddedRemoteEvent(doc('coll/b', 10, { value: [] }), [targetId]),
742+
docAddedRemoteEvent(doc('coll/c', 10, { value: [3] }), [targetId]),
743+
docAddedRemoteEvent(doc('coll/d', 10, { value: [0, 5] }), [targetId]),
802744
docAddedRemoteEvent(doc('coll/e', 10, { value: ['string'] }), [targetId])
803745
);
804746

@@ -826,19 +768,11 @@ describe('LocalStore w/ IndexedDB Persistence (Non generic)', () => {
826768
relativeIndexReadCostPerDocument: 2
827769
});
828770

829-
await test.applyRemoteEvent(
830-
docAddedRemoteEvent(doc('coll/a', 10, { value: 'match' }), [targetId])
831-
);
832-
await test.applyRemoteEvent(
833-
docAddedRemoteEvent(doc('coll/b', 10, { value: Number.NaN }), [targetId])
834-
);
835-
await test.applyRemoteEvent(
836-
docAddedRemoteEvent(doc('coll/c', 10, { value: null }), [targetId])
837-
);
838-
await test.applyRemoteEvent(
839-
docAddedRemoteEvent(doc('coll/d', 10, { value: 'mismatch' }), [targetId])
840-
);
841-
await test.applyRemoteEvent(
771+
await test.applyRemoteEvents(
772+
docAddedRemoteEvent(doc('coll/a', 10, { value: 'match' }), [targetId]),
773+
docAddedRemoteEvent(doc('coll/b', 10, { value: Number.NaN }), [targetId]),
774+
docAddedRemoteEvent(doc('coll/c', 10, { value: null }), [targetId]),
775+
docAddedRemoteEvent(doc('coll/d', 10, { value: 'mismatch' }), [targetId]),
842776
docAddedRemoteEvent(doc('coll/e', 10, { value: 'match' }), [targetId])
843777
);
844778

0 commit comments

Comments
 (0)