spec/publish_spec.rb in sidekiq-bus-0.8.1 vs spec/publish_spec.rb in sidekiq-bus-0.8.2

- old
+ new

@@ -1,98 +1,98 @@ +# frozen_string_literal: true + require 'spec_helper' -describe "Publishing an event" do - +describe 'Publishing an event' do before(:each) do Timecop.freeze - allow(QueueBus).to receive(:generate_uuid).and_return("idfhlkj") + allow(QueueBus).to receive(:generate_uuid).and_return('idfhlkj') end after(:each) do Timecop.return end - let(:bus_attrs) { {"bus_class_proxy"=>"QueueBus::Driver", - "bus_published_at" => Time.now.to_i, - "bus_id"=>"#{Time.now.to_i}-idfhlkj", - "bus_app_hostname" => `hostname 2>&1`.strip.sub(/.local/,'')} } + let(:bus_attrs) do + { 'bus_class_proxy' => 'QueueBus::Driver', + 'bus_published_at' => Time.now.to_i, + 'bus_id' => "#{Time.now.to_i}-idfhlkj", + 'bus_app_hostname' => Socket.gethostname } + end - it "should add it to Redis" do - hash = {:one => 1, "two" => "here", "id" => 12 } - event_name = "event_name" + it 'should add it to Redis' do + hash = { :one => 1, 'two' => 'here', 'id' => 12 } + event_name = 'event_name' - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } expect(val).to eq(nil) QueueBus.publish(event_name, hash) - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } hash = JSON.parse(val) - expect(hash["class"]).to eq("QueueBus::Worker") - expect(hash["args"].size).to eq(1) - expect(JSON.parse(hash["args"].first)).to eq({"bus_event_type" => event_name, "two"=>"here", "one"=>1, "id" => 12}.merge(bus_attrs)) - + expect(hash['class']).to eq('QueueBus::Worker') + expect(hash['args'].size).to eq(1) + expect(JSON.parse(hash['args'].first)).to eq({ 'bus_event_type' => event_name, 'two' => 'here', 'one' => 1, 'id' => 12 }.merge(bus_attrs)) end - it "should use the id if given" do - hash = {:one => 1, "two" => "here", "bus_id" => "app-given" } - event_name = "event_name" + it 'should use the id if given' do + hash = { :one => 1, 'two' => 'here', 'bus_id' => 'app-given' } + event_name = 'event_name' - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } expect(val).to eq(nil) QueueBus.publish(event_name, hash) - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } hash = JSON.parse(val) - expect(hash["class"]).to eq("QueueBus::Worker") - expect(hash["args"].size).to eq(1) - expect(JSON.parse(hash["args"].first)).to eq({"bus_event_type" => event_name, "two"=>"here", "one"=>1}.merge(bus_attrs).merge("bus_id" => 'app-given')) + expect(hash['class']).to eq('QueueBus::Worker') + expect(hash['args'].size).to eq(1) + expect(JSON.parse(hash['args'].first)).to eq({ 'bus_event_type' => event_name, 'two' => 'here', 'one' => 1 }.merge(bus_attrs).merge('bus_id' => 'app-given')) end - it "should add metadata via callback" do + it 'should add metadata via callback' do myval = 0 QueueBus.before_publish = lambda { |att| - att["mine"] = 4 + att['mine'] = 4 myval += 1 } - hash = {:one => 1, "two" => "here", "bus_id" => "app-given" } - event_name = "event_name" + hash = { :one => 1, 'two' => 'here', 'bus_id' => 'app-given' } + event_name = 'event_name' - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } expect(val).to eq(nil) QueueBus.publish(event_name, hash) - - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } hash = JSON.parse(val) - att = JSON.parse(hash["args"].first) - expect(att["mine"]).to eq(4) + att = JSON.parse(hash['args'].first) + expect(att['mine']).to eq(4) expect(myval).to eq(1) end - it "should set the timezone and locale if available" do + it 'should set the timezone and locale if available' do expect(defined?(I18n)).to be_nil expect(Time.respond_to?(:zone)).to eq(false) - stub_const("I18n", Class.new) - allow(I18n).to receive(:locale).and_return("jp") + stub_const('I18n', Class.new) + allow(I18n).to receive(:locale).and_return('jp') - allow(Time).to receive(:zone).and_return(double('zone', :name => "EST")) + allow(Time).to receive(:zone).and_return(double('zone', name: 'EST')) - hash = {:one => 1, "two" => "here", "bus_id" => "app-given" } - event_name = "event_name" + hash = { :one => 1, 'two' => 'here', 'bus_id' => 'app-given' } + event_name = 'event_name' - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } expect(val).to eq(nil) QueueBus.publish(event_name, hash) - val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } + val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') } hash = JSON.parse(val) - expect(hash["class"]).to eq("QueueBus::Worker") - att = JSON.parse(hash["args"].first) - expect(att["bus_locale"]).to eq("jp") - expect(att["bus_timezone"]).to eq("EST") + expect(hash['class']).to eq('QueueBus::Worker') + att = JSON.parse(hash['args'].first) + expect(att['bus_locale']).to eq('jp') + expect(att['bus_timezone']).to eq('EST') end - end