airbrake-ruby 5.0.0.rc.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/lib/airbrake-ruby/backtrace.rb +6 -5
  3. data/lib/airbrake-ruby/config.rb +8 -36
  4. data/lib/airbrake-ruby/config/processor.rb +7 -3
  5. data/lib/airbrake-ruby/config/validator.rb +2 -0
  6. data/lib/airbrake-ruby/file_cache.rb +1 -1
  7. data/lib/airbrake-ruby/filter_chain.rb +1 -0
  8. data/lib/airbrake-ruby/filters/dependency_filter.rb +1 -0
  9. data/lib/airbrake-ruby/filters/gem_root_filter.rb +1 -0
  10. data/lib/airbrake-ruby/filters/git_last_checkout_filter.rb +1 -2
  11. data/lib/airbrake-ruby/filters/git_repository_filter.rb +3 -0
  12. data/lib/airbrake-ruby/filters/git_revision_filter.rb +2 -0
  13. data/lib/airbrake-ruby/filters/keys_filter.rb +21 -13
  14. data/lib/airbrake-ruby/filters/root_directory_filter.rb +1 -0
  15. data/lib/airbrake-ruby/filters/sql_filter.rb +4 -4
  16. data/lib/airbrake-ruby/filters/system_exit_filter.rb +1 -0
  17. data/lib/airbrake-ruby/filters/thread_filter.rb +2 -0
  18. data/lib/airbrake-ruby/ignorable.rb +1 -0
  19. data/lib/airbrake-ruby/notice_notifier.rb +1 -0
  20. data/lib/airbrake-ruby/performance_breakdown.rb +1 -6
  21. data/lib/airbrake-ruby/performance_notifier.rb +1 -14
  22. data/lib/airbrake-ruby/promise.rb +1 -0
  23. data/lib/airbrake-ruby/query.rb +1 -6
  24. data/lib/airbrake-ruby/queue.rb +1 -8
  25. data/lib/airbrake-ruby/remote_settings.rb +7 -5
  26. data/lib/airbrake-ruby/remote_settings/settings_data.rb +13 -9
  27. data/lib/airbrake-ruby/request.rb +1 -8
  28. data/lib/airbrake-ruby/stat.rb +1 -12
  29. data/lib/airbrake-ruby/sync_sender.rb +1 -0
  30. data/lib/airbrake-ruby/tdigest.rb +2 -0
  31. data/lib/airbrake-ruby/thread_pool.rb +1 -0
  32. data/lib/airbrake-ruby/truncator.rb +8 -2
  33. data/lib/airbrake-ruby/version.rb +2 -2
  34. data/spec/backtrace_spec.rb +26 -26
  35. data/spec/code_hunk_spec.rb +2 -2
  36. data/spec/config/processor_spec.rb +5 -19
  37. data/spec/config_spec.rb +4 -29
  38. data/spec/filters/gem_root_filter_spec.rb +4 -4
  39. data/spec/filters/keys_allowlist_spec.rb +1 -0
  40. data/spec/filters/keys_blocklist_spec.rb +10 -0
  41. data/spec/filters/root_directory_filter_spec.rb +4 -4
  42. data/spec/filters/sql_filter_spec.rb +2 -2
  43. data/spec/notice_notifier/options_spec.rb +2 -2
  44. data/spec/notice_notifier_spec.rb +2 -2
  45. data/spec/notice_spec.rb +1 -1
  46. data/spec/performance_breakdown_spec.rb +0 -12
  47. data/spec/performance_notifier_spec.rb +0 -25
  48. data/spec/query_spec.rb +1 -11
  49. data/spec/queue_spec.rb +1 -13
  50. data/spec/remote_settings/settings_data_spec.rb +51 -13
  51. data/spec/remote_settings_spec.rb +14 -14
  52. data/spec/request_spec.rb +1 -13
  53. data/spec/spec_helper.rb +4 -4
  54. data/spec/stat_spec.rb +0 -9
  55. metadata +5 -5
@@ -34,9 +34,9 @@ RSpec.describe Airbrake::CodeHunk do
34
34
  eq(
35
35
  1 => 'module Airbrake',
36
36
  2 => ' ##',
37
- # rubocop:disable Metrics/LineLength
37
+ # rubocop:disable Layout/LineLength
38
38
  3 => ' # Represents a chunk of information that is meant to be either sent to',
39
- # rubocop:enable Metrics/LineLength
39
+ # rubocop:enable Layout/LineLength
40
40
  ),
41
41
  )
42
42
  end
@@ -54,26 +54,13 @@ RSpec.describe Airbrake::Config::Processor do
54
54
  end
55
55
 
56
56
  context "when the config defines a project_id" do
57
- context "and when remote configuration is false" do
58
- let(:config) do
59
- Airbrake::Config.new(project_id: 123, __remote_configuration: false)
60
- end
61
-
62
- it "doesn't set remote settings" do
63
- expect(Airbrake::RemoteSettings).not_to receive(:poll)
64
- described_class.new(config).process_remote_configuration
65
- end
57
+ let(:config) do
58
+ Airbrake::Config.new(project_id: 123)
66
59
  end
67
60
 
68
- context "and when remote configuration is true" do
69
- let(:config) do
70
- Airbrake::Config.new(project_id: 123, __remote_configuration: true)
71
- end
72
-
73
- it "sets remote settings" do
74
- expect(Airbrake::RemoteSettings).to receive(:poll)
75
- described_class.new(config).process_remote_configuration
76
- end
61
+ it "sets remote settings" do
62
+ expect(Airbrake::RemoteSettings).to receive(:poll)
63
+ described_class.new(config).process_remote_configuration
77
64
  end
78
65
  end
79
66
  end
@@ -142,7 +129,6 @@ RSpec.describe Airbrake::Config::Processor do
142
129
  let(:config) do
143
130
  Airbrake::Config.new(
144
131
  project_id: 123,
145
- __remote_configuration: true,
146
132
  logger: logger,
147
133
  )
148
134
  end
@@ -26,7 +26,10 @@ RSpec.describe Airbrake::Config do
26
26
  its(:query_stats) { is_expected.to eq(true) }
27
27
  its(:job_stats) { is_expected.to eq(true) }
28
28
  its(:error_notifications) { is_expected.to eq(true) }
29
- its(:__remote_configuration) { is_expected.to eq(false) }
29
+
30
+ its(:remote_config_host) do
31
+ is_expected.to eq('https://v1-production-notifier-configs.s3.amazonaws.com')
32
+ end
30
33
 
31
34
  describe "#new" do
32
35
  context "when user config is passed" do
@@ -173,32 +176,4 @@ RSpec.describe Airbrake::Config do
173
176
  expect(subject.logger.level).to eq(Logger::WARN)
174
177
  end
175
178
  end
176
-
177
- describe "#blacklist_keys=" do
178
- before { allow(Kernel).to receive(:warn) }
179
-
180
- it "sets blocklist_keys instead" do
181
- subject.blacklist_keys = [1, 2, 3]
182
- expect(subject.blocklist_keys).to eq([1, 2, 3])
183
- end
184
-
185
- it "prints a warning" do
186
- expect(Kernel).to receive(:warn).with(/use blocklist_keys= instead/)
187
- subject.blacklist_keys = [1, 2, 3]
188
- end
189
- end
190
-
191
- describe "#whitelist_keys=" do
192
- before { allow(Kernel).to receive(:warn) }
193
-
194
- it "sets allowlist_keys instead" do
195
- subject.whitelist_keys = [1, 2, 3]
196
- expect(subject.allowlist_keys).to eq([1, 2, 3])
197
- end
198
-
199
- it "prints a warning" do
200
- expect(Kernel).to receive(:warn).with(/use allowlist_keys= instead/)
201
- subject.whitelist_keys = [1, 2, 3]
202
- end
203
- end
204
179
  end
@@ -7,18 +7,18 @@ RSpec.describe Airbrake::Filters::GemRootFilter do
7
7
  after { 2.times { Gem.path.pop } }
8
8
 
9
9
  it "replaces gem root in the backtrace with a label" do
10
- # rubocop:disable Metrics/LineLength
10
+ # rubocop:disable Layout/LineLength
11
11
  notice[:errors].first[:backtrace] = [
12
12
  { file: "/home/kyrylo/code/airbrake/ruby/spec/spec_helper.rb" },
13
13
  { file: "#{root1}/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb" },
14
14
  { file: "/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb" },
15
15
  { file: "#{root2}/gems/rspec-core-3.3.2/exe/rspec" },
16
16
  ]
17
- # rubocop:enable Metrics/LineLength
17
+ # rubocop:enable Layout/LineLength
18
18
 
19
19
  subject.call(notice)
20
20
 
21
- # rubocop:disable Metrics/LineLength
21
+ # rubocop:disable Layout/LineLength
22
22
  expect(notice[:errors].first[:backtrace]).to(
23
23
  eq(
24
24
  [
@@ -29,7 +29,7 @@ RSpec.describe Airbrake::Filters::GemRootFilter do
29
29
  ],
30
30
  ),
31
31
  )
32
- # rubocop:enable Metrics/LineLength
32
+ # rubocop:enable Layout/LineLength
33
33
  end
34
34
 
35
35
  it "does not filter file when it is nil" do
@@ -151,6 +151,7 @@ RSpec.describe Airbrake::Filters::KeysAllowlist do
151
151
  # thing. One is a Java exception, the other is a Ruby exception.
152
152
  # Likely a bug: https://github.com/jruby/jruby/issues/1903
153
153
  raise ex unless RUBY_ENGINE == 'jruby'
154
+
154
155
  expect { subject.call(notice) }.to raise_error(java.lang.StackOverflowError)
155
156
  end
156
157
  end
@@ -150,6 +150,16 @@ RSpec.describe Airbrake::Filters::KeysBlocklist do
150
150
  { bongo: { bish: '[Filtered]' } },
151
151
  ],
152
152
  )
153
+
154
+ it "doesn't mutate the original hash" do
155
+ params = { bongo: { bish: 'bash' } }
156
+ notice[:params] = params
157
+
158
+ blocklist = described_class.new([:bish])
159
+ blocklist.call(notice)
160
+
161
+ expect(params[:bongo][:bish]).to eq('bash')
162
+ end
153
163
  end
154
164
 
155
165
  context "and it is recursive" do
@@ -5,18 +5,18 @@ RSpec.describe Airbrake::Filters::RootDirectoryFilter do
5
5
  let(:notice) { Airbrake::Notice.new(AirbrakeTestError.new) }
6
6
 
7
7
  it "replaces root directory in the backtrace with a label" do
8
- # rubocop:disable Metrics/LineLength
8
+ # rubocop:disable Layout/LineLength
9
9
  notice[:errors].first[:backtrace] = [
10
10
  { file: "/home/kyrylo/code/airbrake/ruby/spec/spec_helper.rb" },
11
11
  { file: "#{root_directory}/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb " },
12
12
  { file: "/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb" },
13
13
  { file: "#{root_directory}/gems/rspec-core-3.3.2/exe/rspec" },
14
14
  ]
15
- # rubocop:enable Metrics/LineLength
15
+ # rubocop:enable Layout/LineLength
16
16
 
17
17
  subject.call(notice)
18
18
 
19
- # rubocop:disable Metrics/LineLength
19
+ # rubocop:disable Layout/LineLength
20
20
  expect(notice[:errors].first[:backtrace]).to(
21
21
  eq(
22
22
  [
@@ -27,7 +27,7 @@ RSpec.describe Airbrake::Filters::RootDirectoryFilter do
27
27
  ],
28
28
  ),
29
29
  )
30
- # rubocop:enable Metrics/LineLength
30
+ # rubocop:enable Layout/LineLength
31
31
  end
32
32
 
33
33
  it "does not filter file when it is nil" do
@@ -22,7 +22,7 @@ RSpec.describe Airbrake::Filters::SqlFilter do
22
22
 
23
23
  ALL_DIALECTS = %i[mysql postgres sqlite cassandra oracle].freeze
24
24
 
25
- # rubocop:disable Metrics/LineLength
25
+ # rubocop:disable Layout/LineLength
26
26
  [
27
27
  {
28
28
  input: 'SELECT * FROM things;',
@@ -229,7 +229,7 @@ RSpec.describe Airbrake::Filters::SqlFilter do
229
229
  ].each do |test|
230
230
  include_examples 'query filtering', test
231
231
  end
232
- # rubocop:enable Metrics/LineLength
232
+ # rubocop:enable Layout/LineLength
233
233
 
234
234
  [
235
235
  'COMMIT',
@@ -149,10 +149,10 @@ RSpec.describe Airbrake::NoticeNotifier do
149
149
  expect(proxied_request.header['proxy-authorization'].first)
150
150
  .to eq('Basic dXNlcjpwYXNzd29yZA==')
151
151
 
152
- # rubocop:disable Metrics/LineLength
152
+ # rubocop:disable Layout/LineLength
153
153
  expect(proxied_request.request_line)
154
154
  .to eq("POST http://localhost:#{proxy.config[:Port]}/api/v3/projects/105138/notices HTTP/1.1\r\n")
155
- # rubocop:enable Metrics/LineLength
155
+ # rubocop:enable Layout/LineLength
156
156
  end
157
157
  end
158
158
 
@@ -309,7 +309,7 @@ RSpec.describe Airbrake::NoticeNotifier do
309
309
 
310
310
  notice = subject.build_notice(Exception.new)
311
311
 
312
- # rubocop:disable Metrics/LineLength
312
+ # rubocop:disable Layout/LineLength
313
313
  expect(notice[:errors].first[:backtrace]).to eq(
314
314
  [
315
315
  { file: 'org/jruby/RubyKernel.java', line: 998, function: 'eval' },
@@ -317,7 +317,7 @@ RSpec.describe Airbrake::NoticeNotifier do
317
317
  { file: '/ruby/stdlib/irb.rb:489', line: 489, function: 'block in eval_input' },
318
318
  ],
319
319
  )
320
- # rubocop:enable Metrics/LineLength
320
+ # rubocop:enable Layout/LineLength
321
321
  end
322
322
  end
323
323
 
@@ -268,7 +268,7 @@ RSpec.describe Airbrake::Notice do
268
268
  it "sets a payload value" do
269
269
  hash = { bingo: 'bango' }
270
270
  notice[:params] = hash
271
- expect(notice[:params]).to equal(hash)
271
+ expect(notice[:params]).to eq(hash)
272
272
  end
273
273
 
274
274
  it "raises error if notice is ignored" do
@@ -3,21 +3,9 @@ RSpec.describe Airbrake::PerformanceBreakdown do
3
3
  subject do
4
4
  described_class.new(
5
5
  method: 'GET', route: '/', response_type: '', groups: {},
6
- start_time: Time.now
7
6
  )
8
7
  end
9
8
 
10
9
  it { is_expected.to respond_to(:stash) }
11
10
  end
12
-
13
- describe "#end_time" do
14
- it "is always equal to start_time + 1 second by default" do
15
- time = Time.now
16
- performance_breakdown = described_class.new(
17
- method: 'GET', route: '/', response_type: '', groups: {},
18
- start_time: time
19
- )
20
- expect(performance_breakdown.end_time).to eq(time + 1)
21
- end
22
- end
23
11
  end
@@ -541,31 +541,6 @@ RSpec.describe Airbrake::PerformanceNotifier do
541
541
  end
542
542
  end
543
543
 
544
- context "when :start_time is specified (deprecated)" do
545
- before do
546
- allow(Kernel).to receive(:warn)
547
- end
548
-
549
- it "uses the value of :start_time to update stat" do
550
- subject.notify(
551
- Airbrake::Query.new(
552
- method: 'POST',
553
- route: '/foo',
554
- query: 'SELECT * FROM things',
555
- start_time: Time.new(2018, 1, 1, 0, 49, 0, 0),
556
- end_time: Time.new(2018, 1, 1, 0, 50, 0, 0),
557
- ),
558
- )
559
- subject.close
560
-
561
- expect(
562
- a_request(:put, queries).with(
563
- body: /"count":1,"sum":60000.0,"sumsq":3600000000.0/,
564
- ),
565
- ).to have_been_made
566
- end
567
- end
568
-
569
544
  context "when provided :timing is zero" do
570
545
  it "doesn't notify" do
571
546
  queue = Airbrake::Queue.new(queue: 'bananas', error_count: 0, timing: 0)
@@ -2,20 +2,10 @@ RSpec.describe Airbrake::Query do
2
2
  describe "#stash" do
3
3
  subject do
4
4
  described_class.new(
5
- method: 'GET', route: '/', query: '', start_time: Time.now,
5
+ method: 'GET', route: '/', query: '',
6
6
  )
7
7
  end
8
8
 
9
9
  it { is_expected.to respond_to(:stash) }
10
10
  end
11
-
12
- describe "#end_time" do
13
- it "is always equal to start_time + 1 second by default" do
14
- time = Time.now
15
- query = described_class.new(
16
- method: 'GET', route: '/', query: '', start_time: time,
17
- )
18
- expect(query.end_time).to eq(time + 1)
19
- end
20
- end
21
11
  end
@@ -9,21 +9,9 @@ RSpec.describe Airbrake::Queue do
9
9
  it { is_expected.to respond_to(:stash) }
10
10
  end
11
11
 
12
- describe "#end_time" do
13
- it "is always equal to start_time + 1 second by default" do
14
- time = Time.now
15
- queue = described_class.new(
16
- queue: 'bananas', error_count: 0, start_time: time,
17
- )
18
- expect(queue.end_time).to eq(time + 1)
19
- end
20
- end
21
-
22
12
  describe "#route" do
23
13
  it "always returns an empty route" do
24
- queue = described_class.new(
25
- queue: 'a', error_count: 0, start_time: Time.now,
26
- )
14
+ queue = described_class.new(queue: 'a', error_count: 0)
27
15
  expect(queue.route).to be_empty
28
16
  end
29
17
  end
@@ -9,12 +9,11 @@ RSpec.describe Airbrake::RemoteSettings::SettingsData do
9
9
 
10
10
  it "merges the given hash with the data" do
11
11
  settings_data = described_class.new(project_id, {})
12
- # rubocop:disable Performance/RedundantMerge
13
12
  settings_data.merge!('poll_sec' => 123, 'config_route' => 'abc')
14
- # rubocop:enable Performance/RedundantMerge
15
13
 
16
14
  expect(settings_data.interval).to eq(123)
17
- expect(settings_data.config_route).to eq('abc')
15
+ expect(settings_data.config_route(''))
16
+ .to eq('abc/2020-06-18/config/123/config.json')
18
17
  end
19
18
  end
20
19
 
@@ -61,25 +60,64 @@ RSpec.describe Airbrake::RemoteSettings::SettingsData do
61
60
  end
62
61
 
63
62
  describe "#config_route" do
64
- context "when given a pathname" do
65
- let(:data) do
66
- { 'config_route' => 'http://example.com' }
63
+ let(:host) { 'https://v1-production-notifier-configs.s3.amazonaws.com' }
64
+
65
+ context "when given a remote host through the remote config" do
66
+ context "and when the remote host ends with a slash" do
67
+ let(:data) do
68
+ { 'config_route' => 'http://example.com/' }
69
+ end
70
+
71
+ it "returns the route with the host" do
72
+ expect(described_class.new(project_id, data).config_route(host)).to eq(
73
+ "http://example.com/2020-06-18/config/#{project_id}/config.json",
74
+ )
75
+ end
67
76
  end
68
77
 
69
- it "returns the given pathname" do
70
- expect(described_class.new(project_id, data).config_route)
71
- .to eq('http://example.com')
78
+ context "and when the remote host doesn't with a slash" do
79
+ let(:data) do
80
+ { 'config_route' => 'http://example.com' }
81
+ end
82
+
83
+ it "returns the route with the host" do
84
+ expect(described_class.new(project_id, data).config_route(host)).to eq(
85
+ "http://example.com/2020-06-18/config/#{project_id}/config.json",
86
+ )
87
+ end
88
+ end
89
+ end
90
+
91
+ context "when given a remote host through local configuration" do
92
+ context "and when the remote host ends with a slash" do
93
+ let(:host) { 'http://example.com/' }
94
+
95
+ it "returns the route with the host" do
96
+ expect(described_class.new(project_id, {}).config_route(host)).to eq(
97
+ "http://example.com/2020-06-18/config/#{project_id}/config.json",
98
+ )
99
+ end
100
+ end
101
+
102
+ context "and when the remote host doesn't with a slash" do
103
+ let(:host) { 'http://example.com' }
104
+
105
+ it "returns the route with the host" do
106
+ expect(described_class.new(project_id, {}).config_route(host)).to eq(
107
+ "http://example.com/2020-06-18/config/#{project_id}/config.json",
108
+ )
109
+ end
72
110
  end
73
111
  end
74
112
 
75
- context "when the pathname is nil" do
113
+ context "when the given remote host in the remote config is nil" do
76
114
  let(:data) do
77
115
  { 'config_route' => nil }
78
116
  end
79
117
 
80
- it "returns the default pathname" do
81
- expect(described_class.new(project_id, data).config_route).to eq(
82
- 'https://v1-staging-notifier-configs.s3.amazonaws.com/' \
118
+ it "returns the route with the given host instead" do
119
+ expect(described_class.new(project_id, data).config_route(host)).to eq(
120
+ 'https://v1-production-notifier-configs.s3.amazonaws.com/' \
83
121
  "2020-06-18/config/#{project_id}/config.json",
84
122
  )
85
123
  end
@@ -1,9 +1,9 @@
1
1
  RSpec.describe Airbrake::RemoteSettings do
2
2
  let(:project_id) { 123 }
3
+ let(:host) { 'https://v1-production-notifier-configs.s3.amazonaws.com' }
3
4
 
4
5
  let(:endpoint) do
5
- "https://v1-staging-notifier-configs.s3.amazonaws.com/2020-06-18/config/" \
6
- "#{project_id}/config.json"
6
+ "#{host}/2020-06-18/config/#{project_id}/config.json"
7
7
  end
8
8
 
9
9
  let(:body) do
@@ -51,7 +51,7 @@ RSpec.describe Airbrake::RemoteSettings do
51
51
  expect(File).to receive(:read).with(config_path)
52
52
  expect(settings_data).to receive(:merge!).with(body).twice
53
53
 
54
- remote_settings = described_class.poll(project_id) {}
54
+ remote_settings = described_class.poll(project_id, host) {}
55
55
  sleep(0.2)
56
56
  remote_settings.stop_polling
57
57
 
@@ -62,7 +62,7 @@ RSpec.describe Airbrake::RemoteSettings do
62
62
  block = proc {}
63
63
  expect(block).to receive(:call).twice
64
64
 
65
- remote_settings = described_class.poll(project_id, &block)
65
+ remote_settings = described_class.poll(project_id, host, &block)
66
66
  sleep(0.2)
67
67
  remote_settings.stop_polling
68
68
 
@@ -76,7 +76,7 @@ RSpec.describe Airbrake::RemoteSettings do
76
76
  '**Airbrake: config loading failed: StandardError',
77
77
  )
78
78
 
79
- remote_settings = described_class.poll(project_id) {}
79
+ remote_settings = described_class.poll(project_id, host) {}
80
80
  sleep(0.2)
81
81
  remote_settings.stop_polling
82
82
 
@@ -87,7 +87,7 @@ RSpec.describe Airbrake::RemoteSettings do
87
87
 
88
88
  context "when no errors are raised" do
89
89
  it "makes a request to AWS S3" do
90
- remote_settings = described_class.poll(project_id) {}
90
+ remote_settings = described_class.poll(project_id, host) {}
91
91
  sleep(0.1)
92
92
  remote_settings.stop_polling
93
93
 
@@ -95,7 +95,7 @@ RSpec.describe Airbrake::RemoteSettings do
95
95
  end
96
96
 
97
97
  it "sends params about the environment with the request" do
98
- remote_settings = described_class.poll(project_id) {}
98
+ remote_settings = described_class.poll(project_id, host) {}
99
99
  sleep(0.1)
100
100
  remote_settings.stop_polling
101
101
 
@@ -107,7 +107,7 @@ RSpec.describe Airbrake::RemoteSettings do
107
107
 
108
108
  it "fetches remote settings" do
109
109
  settings = nil
110
- remote_settings = described_class.poll(project_id) do |data|
110
+ remote_settings = described_class.poll(project_id, host) do |data|
111
111
  settings = data
112
112
  end
113
113
  sleep(0.1)
@@ -126,7 +126,7 @@ RSpec.describe Airbrake::RemoteSettings do
126
126
 
127
127
  it "doesn't fetch remote settings" do
128
128
  settings = nil
129
- remote_settings = described_class.poll(project_id) do |data|
129
+ remote_settings = described_class.poll(project_id, host) do |data|
130
130
  settings = data
131
131
  end
132
132
  sleep(0.1)
@@ -144,7 +144,7 @@ RSpec.describe Airbrake::RemoteSettings do
144
144
 
145
145
  it "doesn't update settings data" do
146
146
  settings = nil
147
- remote_settings = described_class.poll(project_id) do |data|
147
+ remote_settings = described_class.poll(project_id, host) do |data|
148
148
  settings = data
149
149
  end
150
150
  sleep(0.1)
@@ -163,7 +163,7 @@ RSpec.describe Airbrake::RemoteSettings do
163
163
 
164
164
  it "doesn't update settings data" do
165
165
  settings = nil
166
- remote_settings = described_class.poll(project_id) do |data|
166
+ remote_settings = described_class.poll(project_id, host) do |data|
167
167
  settings = data
168
168
  end
169
169
  sleep(0.1)
@@ -189,7 +189,7 @@ RSpec.describe Airbrake::RemoteSettings do
189
189
  end
190
190
 
191
191
  it "makes the next request to the specified config route" do
192
- remote_settings = described_class.poll(project_id) {}
192
+ remote_settings = described_class.poll(project_id, host) {}
193
193
  sleep(0.2)
194
194
 
195
195
  remote_settings.stop_polling
@@ -205,7 +205,7 @@ RSpec.describe Airbrake::RemoteSettings do
205
205
  expect(Dir).to receive(:mkdir).with(config_dir)
206
206
  expect(File).to receive(:write).with(config_path, body.to_json)
207
207
 
208
- remote_settings = described_class.poll(project_id) {}
208
+ remote_settings = described_class.poll(project_id, host) {}
209
209
  sleep(0.2)
210
210
  remote_settings.stop_polling
211
211
 
@@ -219,7 +219,7 @@ RSpec.describe Airbrake::RemoteSettings do
219
219
  '**Airbrake: config dumping failed: StandardError',
220
220
  )
221
221
 
222
- remote_settings = described_class.poll(project_id) {}
222
+ remote_settings = described_class.poll(project_id, host) {}
223
223
  sleep(0.2)
224
224
  remote_settings.stop_polling
225
225