Implement SimpleQuicClient::error_detail()

Plumb through errors ("error_details") from the underlying quic code to
SimpleQuicClient wrapper ("error_detail") used in RequestsTests.  Try to ignore
the null-encoded-as-empty-string smell in the interface.

Written by gemini coder.

Test-only code.

PiperOrigin-RevId: 927464956
diff --git a/quiche/quic/test_tools/quic_test_client.cc b/quiche/quic/test_tools/quic_test_client.cc
index 5797a21..01dedee 100644
--- a/quiche/quic/test_tools/quic_test_client.cc
+++ b/quiche/quic/test_tools/quic_test_client.cc
@@ -578,6 +578,13 @@
   return client()->connection_error();
 }
 
+std::string QuicTestClient::error_details() const {
+  if (client()->session() == nullptr) {
+    return "";
+  }
+  return client()->session()->error_details();
+}
+
 const std::string& QuicTestClient::cert_common_name() const {
   return reinterpret_cast<RecordingProofVerifier*>(client_->proof_verifier())
       ->common_name();
diff --git a/quiche/quic/test_tools/quic_test_client.h b/quiche/quic/test_tools/quic_test_client.h
index 62d1904..d9cd3fe 100644
--- a/quiche/quic/test_tools/quic_test_client.h
+++ b/quiche/quic/test_tools/quic_test_client.h
@@ -395,6 +395,7 @@
 
   QuicRstStreamErrorCode stream_error() { return stream_error_; }
   QuicErrorCode connection_error() const;
+  std::string error_details() const;
 
   MockableQuicClient* client() { return client_.get(); }
   const MockableQuicClient* client() const { return client_.get(); }