17492: Adds test confirming that req-id is added on exceptions.
[arvados.git] / sdk / ruby / test / test_request_id.rb
diff --git a/sdk/ruby/test/test_request_id.rb b/sdk/ruby/test/test_request_id.rb
new file mode 100644 (file)
index 0000000..2e25210
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+require "arvados"
+require "mocha/minitest"
+
+class FakeError < StandardError; end
+class RequestIdTest < Minitest::Test
+    def test_raise_exception_with_request_id
+        arv = Arvados.new
+        clnt = arv.client
+        assert_nil clnt.request_id
+
+        Google::APIClient.any_instance.stubs(:execute).raises(FakeError.new("Uh-oh..."))
+        err = assert_raises(FakeError) do
+            arv.collection.get(uuid: "zzzzz-4zz18-zzzzzzzzzzzzzzz")
+        end
+        assert clnt.request_id != nil
+        assert_match /Uh-oh.*\(Request ID: req-[0-9a-zA-Z]{20}\)/, err.message
+    end
+end
\ No newline at end of file