Skip to content

Commit c722ca7

Browse files
authored
transaction_test.cc: improve error messages from TestMaxAttempts (#1012)
1 parent 4f8c9e8 commit c722ca7

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

firestore/integration_test_internal/src/transaction_test.cc

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "gmock/gmock.h"
3131
#include "gtest/gtest.h"
3232
#include "util/event_accumulator.h"
33+
#include "util/future_test_util.h"
3334
#if defined(__ANDROID__)
3435
#include "firestore/src/android/transaction_android.h"
3536
#endif // defined(__ANDROID__)
@@ -743,7 +744,8 @@ TEST_F(TransactionTest, TestMaxAttempts) {
743744

744745
Future<void> run_transaction_future = firestore->RunTransaction(
745746
options,
746-
[update_count, &doc](Transaction& transaction, std::string&) -> Error {
747+
[update_count, &doc](Transaction& transaction,
748+
std::string& error_message) -> Error {
747749
SCOPED_TRACE("Update callback; update_count=" +
748750
std::to_string(update_count->load()));
749751
++(*update_count);
@@ -752,12 +754,14 @@ TEST_F(TransactionTest, TestMaxAttempts) {
752754
{
753755
SCOPED_TRACE("transaction.Get()");
754756
Error error = Error::kErrorOk;
755-
std::string error_message;
756-
transaction.Get(doc, &error, &error_message);
757+
std::string get_error_message;
758+
transaction.Get(doc, &error, &get_error_message);
757759
if (error != kErrorOk) {
758-
ADD_FAILURE() << "transaction.Get() failed: " << error_message
759-
<< " (error code " << error << ")";
760-
return Error::kErrorInternal;
760+
ADD_FAILURE() << "transaction.Get() failed at Checkpoint UCA: "
761+
<< get_error_message << " (error code " << error
762+
<< "==" << ToFirestoreErrorCodeName(error) << ")";
763+
error_message = "Test failed in update callback at Checkpoint UCA";
764+
return Error::kErrorInvalidArgument;
761765
}
762766
}
763767

@@ -768,12 +772,20 @@ TEST_F(TransactionTest, TestMaxAttempts) {
768772
doc.Set({{"count", FieldValue::Integer(update_count->load())}});
769773
set_future.Await(10000L);
770774
if (set_future.status() != FutureStatus::kFutureStatusComplete) {
771-
ADD_FAILURE() << "Timeout waiting for doc.Set() to complete";
772-
return Error::kErrorInternal;
775+
ADD_FAILURE() << "Timeout waiting for doc.Set() to complete at "
776+
"Checkpoint UCB; status() returned: "
777+
<< set_future.status()
778+
<< "==" << ToEnumeratorName(set_future.status());
779+
error_message = "Test failed in update callback at Checkpoint UCB";
780+
return Error::kErrorInvalidArgument;
773781
} else if (set_future.error() != Error::kErrorOk) {
774-
ADD_FAILURE() << "doc.Set() failed: " << set_future.error_message()
775-
<< " (error code " << set_future.error() << ")";
776-
return Error::kErrorInternal;
782+
ADD_FAILURE() << "doc.Set() failed at Checkpoint UCC: "
783+
<< set_future.error_message() << " (error code "
784+
<< set_future.error() << "=="
785+
<< ToFirestoreErrorCodeName(set_future.error())
786+
<< ")";
787+
error_message = "Test failed in update callback at Checkpoint UCC";
788+
return Error::kErrorInvalidArgument;
777789
}
778790
}
779791

@@ -790,9 +802,16 @@ TEST_F(TransactionTest, TestMaxAttempts) {
790802
SCOPED_TRACE("Waiting for Future returned from RunTransaction()");
791803
Await(run_transaction_future);
792804
ASSERT_EQ(run_transaction_future.status(),
793-
FutureStatus::kFutureStatusComplete);
794-
EXPECT_EQ(run_transaction_future.error(), Error::kErrorFailedPrecondition)
795-
<< "error message: " << run_transaction_future.error_message();
805+
FutureStatus::kFutureStatusComplete)
806+
<< "run_transaction_future.status() returned: "
807+
<< run_transaction_future.status()
808+
<< "==" << ToEnumeratorName(run_transaction_future.status());
809+
ASSERT_EQ(run_transaction_future.error(), Error::kErrorFailedPrecondition)
810+
<< "error message: " << run_transaction_future.error_message()
811+
<< " (run_transaction_future.error() returned "
812+
<< run_transaction_future.error()
813+
<< "==" << ToFirestoreErrorCodeName(run_transaction_future.error())
814+
<< ")";
796815
}
797816

798817
EXPECT_EQ(update_count->load(), 3);

0 commit comments

Comments
 (0)