|
1 | 1 | require "spec_helper" |
2 | 2 |
|
3 | 3 | describe InfluxDB::Client do |
4 | | - let(:client) { described_class.new(udp: { host: "localhost", port: 44_444 }) } |
| 4 | + let(:socket) { UDPSocket.new.tap { |s| s.bind "localhost", 0 } } |
| 5 | + after { socket.close rescue nil } |
| 6 | + |
| 7 | + let(:client) { described_class.new(udp: { host: "localhost", port: socket.addr[1] }) } |
5 | 8 |
|
6 | 9 | specify { expect(client.writer).to be_a(InfluxDB::Writer::UDP) } |
7 | 10 |
|
8 | 11 | describe "#write" do |
9 | 12 | let(:message) { 'responses,region=eu value=5i' } |
10 | 13 |
|
11 | 14 | it "sends a UDP packet" do |
12 | | - s = UDPSocket.new |
13 | | - s.bind("localhost", 44_444) |
14 | | - |
15 | 15 | client.write_point("responses", values: { value: 5 }, tags: { region: 'eu' }) |
16 | 16 |
|
17 | | - rec_message = s.recvfrom(30).first |
| 17 | + rec_message = socket.recvfrom(30).first |
18 | 18 | expect(rec_message).to eq message |
19 | | - |
20 | | - s.close |
21 | 19 | end |
22 | 20 | end |
23 | 21 |
|
24 | 22 | describe "#write with discard_write_errors" do |
25 | 23 | let(:client) do |
26 | | - described_class.new( |
27 | | - udp: { host: "localhost", port: 44_444 }, |
| 24 | + described_class.new \ |
| 25 | + udp: { host: "localhost", port: socket.addr[1] }, |
28 | 26 | discard_write_errors: true |
29 | | - ) |
30 | 27 | end |
31 | 28 |
|
32 | 29 | it "doesn't raise" do |
33 | | - s = UDPSocket.new |
34 | | - s.bind("localhost", 44_444) |
35 | | - |
36 | 30 | client.write_point("responses", values: { value: 5 }, tags: { region: 'eu' }) |
37 | | - s.close |
| 31 | + socket.close |
38 | 32 |
|
39 | 33 | client.write_point("responses", values: { value: 7 }, tags: { region: 'eu' }) |
40 | 34 |
|
|
0 commit comments