@@ -125,6 +125,30 @@ - (void)testFlushing_UsingV2API_WhenHeartbeatsAreStored_ReturnsNonEmptyPayload {
125125 }];
126126}
127127
128+ - (void )testFlushingAsync_UsingV2API_WhenHeartbeatsAreStored_ReturnsNonEmptyPayload API_AVAILABLE(
129+ ios (13.0 ), macosx(10.15 ), macCatalyst(13.0 ), tvos(13.0 ), watchos(6.0 )) {
130+ // Given
131+ FIRHeartbeatLogger *heartbeatLogger = self.heartbeatLogger ;
132+ NSString *expectedDate = [[self class ] formattedStringForDate: [NSDate date ]];
133+ // When
134+ [heartbeatLogger log ];
135+ XCTestExpectation *expectation = [self expectationWithDescription: @" async flush" ];
136+ [heartbeatLogger
137+ flushHeartbeatsIntoPayloadWithCompletionHandler: ^(FIRHeartbeatsPayload *heartbeatsPayload) {
138+ // Then
139+ [self assertEncodedPayloadHeader: FIRHeaderValueFromHeartbeatsPayload (heartbeatsPayload)
140+ isEqualToPayloadJSON: @{
141+ @" version" : @2 ,
142+ @" heartbeats" : @[
143+ @{@" agent" : @" dummy_agent" ,
144+ @" dates" : @[ expectedDate ]}
145+ ]
146+ }];
147+ [expectation fulfill ];
148+ }];
149+ [self waitForExpectations: @[ expectation ] timeout: 1.0 ];
150+ }
151+
128152- (void )testFlushing_UsingV2API_WhenNoHeartbeatsAreStored_ReturnsEmptyPayload {
129153 // Given
130154 FIRHeartbeatLogger *heartbeatLogger = self.heartbeatLogger ;
@@ -134,6 +158,21 @@ - (void)testFlushing_UsingV2API_WhenNoHeartbeatsAreStored_ReturnsEmptyPayload {
134158 [self assertHeartbeatsPayloadIsEmpty: heartbeatsPayload];
135159}
136160
161+ - (void )testFlushingAsync_UsingV2API_WhenNoHeartbeatsAreStored_ReturnsEmptyPayload API_AVAILABLE(
162+ ios (13.0 ), macosx(10.15 ), macCatalyst(13.0 ), tvos(13.0 ), watchos(6.0 )) {
163+ // Given
164+ FIRHeartbeatLogger *heartbeatLogger = self.heartbeatLogger ;
165+ // When
166+ XCTestExpectation *expectation = [self expectationWithDescription: @" async flush" ];
167+ [heartbeatLogger
168+ flushHeartbeatsIntoPayloadWithCompletionHandler: ^(FIRHeartbeatsPayload *heartbeatsPayload) {
169+ // Then
170+ [self assertHeartbeatsPayloadIsEmpty: heartbeatsPayload];
171+ [expectation fulfill ];
172+ }];
173+ [self waitForExpectations: @[ expectation ] timeout: 1.0 ];
174+ }
175+
137176- (void )testLogAndFlushUsingV1API_AndThenFlushAgainUsingV2API_FlushesHeartbeatInTheFirstFlush {
138177 // Given
139178 FIRHeartbeatLogger *heartbeatLogger = self.heartbeatLogger ;
0 commit comments