123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- require 'rails_helper'
- describe AgentReemitJob do
- subject { described_class.new }
- let(:agent) { agents(:bob_website_agent) }
- let(:agent_event) { events(:bob_website_agent_event) }
- it "re-emits all events created by the given Agent" do
- 2.times { agent_event.dup.save! }
- expect {
- subject.perform(agent, agent.most_recent_event.id)
- }.to change(Event, :count).by(3)
- last_event = Event.last
- expect(last_event.user).to eq(agent_event.user)
- expect(last_event.agent).to eq(agent_event.agent)
- expect(last_event.payload).to eq(agent_event.payload)
- end
- it "doesn't re-emit events created after the the most_recent_event_id" do
- 2.times { agent_event.dup.save! }
- # create one more
- most_recent_event = agent.most_recent_event.id
- agent_event.dup.save!
- expect {
- subject.perform(agent, most_recent_event, false)
- }.to change(Event, :count).by(3)
- last_event = Event.last
- expect(last_event.user).to eq(agent_event.user)
- expect(last_event.agent).to eq(agent_event.agent)
- expect(last_event.payload).to eq(agent_event.payload)
- end
- context "when delete_old_events set to true" do
- it "re-emits all events created by the given Agent and destroys originals" do
- original_events = [agent_event]
- 2.times do
- original_events << agent_event.dup.tap{ |e| e.save! }
- end
- expect {
- subject.perform(agent, agent.most_recent_event.id, true)
- }.to change(Event, :count).by(0)
- original_events.each { |e| expect(e.destroyed?) }
- last_event = Event.last
- expect(last_event.user).to eq(agent_event.user)
- expect(last_event.agent).to eq(agent_event.agent)
- expect(last_event.payload).to eq(agent_event.payload)
- end
- end
- end
|