From f7b0acdadac07bb1b17ad13df5f445025dd032cb Mon Sep 17 00:00:00 2001 From: Salakar Date: Tue, 16 Oct 2018 18:15:18 +0100 Subject: [PATCH] [tests][ios] misc firestore transactions --- ios/RNFirebase/firestore/RNFirebaseFirestore.m | 11 +++++------ tests/e2e/firestore/transactions.e2e.js | 4 +++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ios/RNFirebase/firestore/RNFirebaseFirestore.m b/ios/RNFirebase/firestore/RNFirebaseFirestore.m index f18d3720..e2689d0e 100644 --- a/ios/RNFirebase/firestore/RNFirebaseFirestore.m +++ b/ios/RNFirebase/firestore/RNFirebaseFirestore.m @@ -125,7 +125,6 @@ RCT_EXPORT_METHOD(transactionBegin:(NSString *)appDisplayName eventMap[@"appName"] = appDisplayName; [RNFirebaseUtil sendJSEvent:self name:FIRESTORE_TRANSACTION_EVENT body:eventMap]; }); - } // wait for the js event handler to call transactionApplyBuffer @@ -136,6 +135,10 @@ RCT_EXPORT_METHOD(transactionBegin:(NSString *)appDisplayName @synchronized (transactionState) { aborted = [transactionState valueForKey:@"abort"]; + + if (transactionState[@"semaphore"] != semaphore) { + return nil; + } if (aborted == YES) { *errorPointer = [NSError errorWithDomain:FIRFirestoreErrorDomain code:FIRFirestoreErrorCodeAborted userInfo:@{}]; @@ -150,10 +153,6 @@ RCT_EXPORT_METHOD(transactionBegin:(NSString *)appDisplayName if (completed == YES) { return nil; } - - if (transactionState[@"semaphore"] != semaphore) { - return nil; - } NSArray *commandBuffer = [transactionState valueForKey:@"commandBuffer"]; @@ -182,6 +181,7 @@ RCT_EXPORT_METHOD(transactionBegin:(NSString *)appDisplayName } } completion:^(id result, NSError *error) { if (completed == YES) return; + completed = YES; @synchronized (transactionState) { if (aborted == NO) { @@ -202,7 +202,6 @@ RCT_EXPORT_METHOD(transactionBegin:(NSString *)appDisplayName [self->_transactions removeObjectForKey:[transactionId stringValue]]; } - completed = YES; }]; } diff --git a/tests/e2e/firestore/transactions.e2e.js b/tests/e2e/firestore/transactions.e2e.js index 4cf194aa..28e66730 100644 --- a/tests/e2e/firestore/transactions.e2e.js +++ b/tests/e2e/firestore/transactions.e2e.js @@ -7,7 +7,9 @@ describe('firestore()', () => { const docRef = testDocRef('tSet'); const updateFunction = async transaction => { - const doc = await transaction.get(docRef); + let doc; + // TODO test multiple gets + doc = await transaction.get(docRef); if (!doc.exists) { transaction.set(docRef, { value: 1, somethingElse: 'set' }); return 1;