From 852714037652f8181bdfff283dfd3deb00e3aeea Mon Sep 17 00:00:00 2001 From: jeremyjung Date: Sun, 3 Mar 2019 10:31:54 -0800 Subject: [PATCH] Add spec check for EOFError on disconnect --- spec/async/redis/disconnect_spec.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 spec/async/redis/disconnect_spec.rb diff --git a/spec/async/redis/disconnect_spec.rb b/spec/async/redis/disconnect_spec.rb new file mode 100644 index 0000000..9dd26a9 --- /dev/null +++ b/spec/async/redis/disconnect_spec.rb @@ -0,0 +1,26 @@ +require 'async/redis/client' + +RSpec.describe Async::Redis::Client, timeout: 5 do + include_context Async::RSpec::Reactor + + let(:endpoint) { Async::IO::Endpoint.tcp('localhost', 5555) } + + it "should raise EOFError on unexpected disconnect" do + server_task = reactor.async do + endpoint.accept do |connection| + stream = Async::IO::Stream.new(connection) + stream.read(8) + stream.close + connection.close + end + end + + reactor.async do + client = Async::Redis::Client.new(endpoint) + expect { client.call("GET", "test") }.to raise_error(EOFError) + client.close + server_task.stop + end + + end +end