spec/unit/middleware/sql_subscriber_spec.rb in influxdb-rails-1.0.0.beta2 vs spec/unit/middleware/sql_subscriber_spec.rb in influxdb-rails-1.0.0.beta3
- old
+ new
@@ -1,6 +1,7 @@
require "spec_helper"
+require "shared_examples/tags"
RSpec.describe InfluxDB::Rails::Middleware::SqlSubscriber do
let(:config) { InfluxDB::Rails::Configuration.new }
let(:logger) { double(:logger) }
@@ -9,15 +10,15 @@
allow(config).to receive(:ignored_environments).and_return([])
allow(config).to receive(:time_precision).and_return("ms")
end
describe ".call" do
- let(:start_time) { Time.at(1_517_567_368) }
- let(:finish_time) { Time.at(1_517_567_370) }
- let(:series_name) { "series_name" }
+ let(:start) { Time.at(1_517_567_368) }
+ let(:finish) { Time.at(1_517_567_370) }
+ let(:series_name) { "rails.sql" }
let(:payload) { { sql: "SELECT * FROM POSTS WHERE id = 1", name: "Post Load", binds: %w[1 2 3] } }
- let(:result) do
+ let(:data) do
{
values: {
value: 2000,
sql: "SELECT * FROM POSTS WHERE id = xxx"
},
@@ -32,37 +33,38 @@
end
subject { described_class.new(config, series_name) }
before do
- Thread.current[:_influxdb_rails_controller] = "Foo"
- Thread.current[:_influxdb_rails_action] = "bar"
+ InfluxDB::Rails.current.controller = "Foo"
+ InfluxDB::Rails.current.action = "bar"
end
after do
- Thread.current[:_influxdb_rails_action] = nil
- Thread.current[:_influxdb_rails_controller] = nil
+ InfluxDB::Rails.current.reset
end
context "successfully" do
it "writes to InfluxDB" do
expect_any_instance_of(InfluxDB::Client).to receive(:write_point).with(
- series_name, result
+ series_name, data
)
- subject.call("name", start_time, finish_time, "id", payload)
+ subject.call("name", start, finish, "id", payload)
end
context "with not relevant queries" do
before do
payload[:sql] = "SHOW FULL FIELDS FROM `users`"
end
it "does not write to InfluxDB" do
expect_any_instance_of(InfluxDB::Client).not_to receive(:write_point)
- subject.call("name", start_time, finish_time, "id", payload)
+ subject.call("name", start, finish, "id", payload)
end
end
+
+ it_behaves_like "with additional tags", ["rails.sql"]
end
context "unsuccessfully" do
before do
allow(config).to receive(:logger).and_return(logger)
@@ -70,10 +72,10 @@
end
it "does log exceptions" do
allow_any_instance_of(InfluxDB::Client).to receive(:write_point).and_raise("boom")
expect(logger).to receive(:error).with(/boom/)
- subject.call("name", start_time, finish_time, "id", payload)
+ subject.call("name", start, finish, "id", payload)
end
end
end
end