Skip to content

Commit c48e6aa

Browse files
committed
wip
1 parent 3e7698d commit c48e6aa

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

test/async/websocket/client.rb

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,34 @@
4444
Async::WebSocket::Client.connect(client_endpoint) {}
4545
end.to raise_exception(Async::WebSocket::ProtocolError, message: be =~ /Failed to negotiate connection/)
4646
end
47-
end
47+
end
48+
49+
with "server close condition" do
50+
let(:close_condition) { Async::Condition.new }
51+
52+
let(:app) do
53+
Protocol::HTTP::Middleware.for do |request|
54+
Async::WebSocket::Adapters::HTTP.open(request) do |connection|
55+
while connection.read; end
56+
rescue Errno::EPIPE => e
57+
connection.close
58+
59+
close_condition.signal e.cause.code
60+
end
61+
end
62+
end
63+
64+
let(:timeout) { nil }
65+
66+
it 'closes with custom error' do
67+
expectation = Async { expect(close_condition.wait).to be == 1001 }
68+
69+
connection = Async::WebSocket::Client.connect(client_endpoint)
70+
connection.close 1001
71+
72+
expectation.wait
73+
end
74+
end
4875
end
4976

5077
describe Async::WebSocket::Client do

0 commit comments

Comments
 (0)