Skip to content

Commit c342db0

Browse files
authored
Fix assertless test for exception log filtering (#463)
1 parent e9a904d commit c342db0

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

test/grpc/integration/server_test.exs

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -323,31 +323,46 @@ defmodule GRPC.Integration.ServerTest do
323323
refute logs =~ "Exception raised while handling /helloworld.Greeter/SayHello"
324324
end
325325

326-
test "passes RPCErrors to `exception_log_filter" do
327-
defmodule ExceptionFilterMustBeRPCError do
328-
def filter(%GRPC.RPCError{}) do
329-
true
330-
end
326+
defmodule ExceptionFilterMustBeRPCError do
327+
def filter(exception) do
328+
data = exception.adapter_extra[:req][:headers]["test-data"]
329+
330+
{pid, ref} = :erlang.binary_to_term(data)
331+
send(pid, {:exception_log_filter, ref, exception})
332+
333+
true
331334
end
335+
end
336+
337+
test "passes RPCErrors to `exception_log_filter" do
338+
test_pid = self()
339+
ref = make_ref()
332340

333341
run_server(
334342
[HelloErrorServer],
335343
fn port ->
336-
{:ok, channel} = GRPC.Stub.connect("localhost:#{port}")
337-
req = %Helloworld.HelloRequest{name: "unknown error"}
344+
{:ok, channel} =
345+
GRPC.Stub.connect("localhost:#{port}",
346+
headers: [{"test-data", :erlang.term_to_binary({test_pid, ref})}]
347+
)
348+
349+
req = %Helloworld.HelloRequest{name: "world"}
338350
Helloworld.Greeter.Stub.say_hello(channel, req)
339351
end,
340352
0,
341353
exception_log_filter: {ExceptionFilterMustBeRPCError, :filter}
342354
)
355+
356+
assert_receive {:exception_log_filter, ^ref,
357+
%GRPC.Server.Adapters.ReportException{reason: %GRPC.RPCError{}}}
343358
end
344359

345360
defmodule ExceptionFilterMustBeRaisedError do
346361
def filter(exception) do
347362
data = exception.adapter_extra[:req][:headers]["test-data"]
348363

349364
{pid, ref} = :erlang.binary_to_term(data)
350-
send(pid, {:exception_log_filter, ref})
365+
send(pid, {:exception_log_filter, ref, exception})
351366

352367
true
353368
end
@@ -365,14 +380,15 @@ defmodule GRPC.Integration.ServerTest do
365380
headers: [{"test-data", :erlang.term_to_binary({test_pid, ref})}]
366381
)
367382

368-
req = %Helloworld.HelloRequest{name: "raise", duration: 0}
383+
req = %Helloworld.HelloRequest{name: "unknown error", duration: 0}
369384
Helloworld.Greeter.Stub.say_hello(channel, req)
370385
end,
371386
0,
372387
exception_log_filter: {ExceptionFilterMustBeRaisedError, :filter}
373388
)
374389

375-
assert_receive {:exception_log_filter, ^ref}
390+
assert_receive {:exception_log_filter, ^ref,
391+
%GRPC.Server.Adapters.ReportException{reason: %RuntimeError{}}}
376392
end
377393

378394
test "returns appropriate error for stream requests" do

0 commit comments

Comments
 (0)