Skip to content

Commit 6b716c8

Browse files
committed
Fix flaky test
1 parent 8287585 commit 6b716c8

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

spec/port_explorer_spec.rb

+21-10
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,30 @@ module RestAssured::Utils
88
expect { Net::HTTP.get('127.0.0.1', '/', free_port) }.to raise_error(Errno::ECONNREFUSED)
99
end
1010

11-
it 'knows if port is in use' do
12-
port = PortExplorer.free_port
11+
context 'port is taken' do
12+
let(:port) { PortExplorer.free_port }
13+
server = nil
1314

14-
Thread.new do
15-
TCPServer.open('127.0.0.1', port) do |serv|
16-
s = serv.accept
17-
s.puts 'Hello from test'
18-
sleep 0.5
19-
s.close
20-
end
15+
before :each do
16+
server = TCPServer.new port
17+
end
18+
19+
after :each do
20+
server.close
2121
end
2222

23-
expect(PortExplorer.port_free?(port)).to eq(false)
23+
it 'knows if port is in use' do
24+
Thread.new do
25+
loop do
26+
Thread.start(server.accept) do |client|
27+
client.puts "Hello!"
28+
client.close
29+
end
30+
end
31+
end
32+
33+
expect(PortExplorer.port_free?(port)).to eq(false)
34+
end
2435
end
2536

2637
it 'knows that port is free' do

0 commit comments

Comments
 (0)