@@ -28,6 +28,7 @@ import {
2828import { canonifyTarget , Target , targetEquals } from '../../../src/core/target' ;
2929import { TargetIdGenerator } from '../../../src/core/target_id_generator' ;
3030import { TargetId } from '../../../src/core/types' ;
31+ import { TargetPurpose } from '../../../src/local/target_data' ;
3132import { Document } from '../../../src/model/document' ;
3233import { DocumentKey } from '../../../src/model/document_key' ;
3334import { FieldIndex } from '../../../src/model/field_index' ;
@@ -73,6 +74,7 @@ export interface LimboMap {
7374
7475export interface ActiveTargetSpec {
7576 queries : SpecQuery [ ] ;
77+ targetPurpose ?: TargetPurpose ;
7678 resumeToken ?: string ;
7779 readTime ?: TestSnapshotVersion ;
7880}
@@ -299,7 +301,9 @@ export class SpecBuilder {
299301 throw new Error ( "Can't restore an unknown query: " + query ) ;
300302 }
301303
302- this . addQueryToActiveTargets ( targetId ! , query , { resumeToken } ) ;
304+ this . addQueryToActiveTargets ( targetId ! , query , {
305+ resumeToken
306+ } ) ;
303307
304308 const currentStep = this . currentStep ! ;
305309 currentStep . expectedState = currentStep . expectedState || { } ;
@@ -525,18 +529,24 @@ export class SpecBuilder {
525529 expectActiveTargets (
526530 ...targets : Array < {
527531 query : Query ;
532+ targetPurpose ?: TargetPurpose ;
528533 resumeToken ?: string ;
529534 readTime ?: TestSnapshotVersion ;
530535 } >
531536 ) : this {
532537 this . assertStep ( 'Active target expectation requires previous step' ) ;
533538 const currentStep = this . currentStep ! ;
534539 this . clientState . activeTargets = { } ;
535- targets . forEach ( ( { query, resumeToken, readTime } ) => {
536- this . addQueryToActiveTargets ( this . getTargetId ( query ) , query , {
537- resumeToken,
538- readTime
539- } ) ;
540+ targets . forEach ( ( { query, targetPurpose, resumeToken, readTime } ) => {
541+ this . addQueryToActiveTargets (
542+ this . getTargetId ( query ) ,
543+ query ,
544+ {
545+ resumeToken,
546+ readTime
547+ } ,
548+ targetPurpose
549+ ) ;
540550 } ) ;
541551 currentStep . expectedState = currentStep . expectedState || { } ;
542552 currentStep . expectedState . activeTargets = { ...this . activeTargets } ;
@@ -567,7 +577,8 @@ export class SpecBuilder {
567577 this . addQueryToActiveTargets (
568578 this . limboMapping [ path ] ,
569579 newQueryForPath ( key . path ) ,
570- { resumeToken : '' }
580+ { resumeToken : '' } ,
581+ TargetPurpose . LimboResolution
571582 ) ;
572583 } ) ;
573584
@@ -1077,7 +1088,8 @@ export class SpecBuilder {
10771088 private addQueryToActiveTargets (
10781089 targetId : number ,
10791090 query : Query ,
1080- resume ?: ResumeSpec
1091+ resume : ResumeSpec = { } ,
1092+ targetPurpose ?: TargetPurpose
10811093 ) : void {
10821094 if ( this . activeTargets [ targetId ] ) {
10831095 const activeQueries = this . activeTargets [ targetId ] . queries ;
@@ -1089,21 +1101,24 @@ export class SpecBuilder {
10891101 // `query` is not added yet.
10901102 this . activeTargets [ targetId ] = {
10911103 queries : [ SpecBuilder . queryToSpec ( query ) , ...activeQueries ] ,
1092- resumeToken : resume ?. resumeToken || '' ,
1093- readTime : resume ?. readTime
1104+ targetPurpose,
1105+ resumeToken : resume . resumeToken || '' ,
1106+ readTime : resume . readTime
10941107 } ;
10951108 } else {
10961109 this . activeTargets [ targetId ] = {
10971110 queries : activeQueries ,
1098- resumeToken : resume ?. resumeToken || '' ,
1099- readTime : resume ?. readTime
1111+ targetPurpose,
1112+ resumeToken : resume . resumeToken || '' ,
1113+ readTime : resume . readTime
11001114 } ;
11011115 }
11021116 } else {
11031117 this . activeTargets [ targetId ] = {
11041118 queries : [ SpecBuilder . queryToSpec ( query ) ] ,
1105- resumeToken : resume ?. resumeToken || '' ,
1106- readTime : resume ?. readTime
1119+ targetPurpose,
1120+ resumeToken : resume . resumeToken || '' ,
1121+ readTime : resume . readTime
11071122 } ;
11081123 }
11091124 }
@@ -1115,6 +1130,7 @@ export class SpecBuilder {
11151130 if ( queriesAfterRemoval . length > 0 ) {
11161131 this . activeTargets [ targetId ] = {
11171132 queries : queriesAfterRemoval ,
1133+ targetPurpose : this . activeTargets [ targetId ] . targetPurpose ,
11181134 resumeToken : this . activeTargets [ targetId ] . resumeToken
11191135 } ;
11201136 } else {
0 commit comments