require 'rails_helper'
shared_examples_for WorkingHelpers do
describe "recent_error_logs?" do
it "returns true if last_error_log_at is near last_event_at" do
agent = described_class.new
agent.last_error_log_at = 10.minutes.ago
agent.last_event_at = 10.minutes.ago
expect(agent.recent_error_logs?).to be_truthy
agent.last_error_log_at = 11.minutes.ago
agent.last_event_at = 10.minutes.ago
expect(agent.recent_error_logs?).to be_truthy
agent.last_error_log_at = 5.minutes.ago
agent.last_event_at = 10.minutes.ago
expect(agent.recent_error_logs?).to be_truthy
agent.last_error_log_at = 15.minutes.ago
agent.last_event_at = 10.minutes.ago
expect(agent.recent_error_logs?).to be_falsey
agent.last_error_log_at = 2.days.ago
agent.last_event_at = 10.minutes.ago
expect(agent.recent_error_logs?).to be_falsey
end
end
describe "received_event_without_error?" do
before do
@agent = described_class.new
end
it "should return false until the first event was received" do
expect(@agent.received_event_without_error?).to eq(false)
@agent.last_receive_at = Time.now
expect(@agent.received_event_without_error?).to eq(true)
end
it "should return false when the last error occured after the last received event" do
@agent.last_receive_at = Time.now - 1.minute
@agent.last_error_log_at = Time.now
expect(@agent.received_event_without_error?).to eq(false)
end
it "should return true when the last received event occured after the last error" do
@agent.last_receive_at = Time.now
@agent.last_error_log_at = Time.now - 1.minute
expect(@agent.received_event_without_error?).to eq(true)
end
end
describe "checked_without_error?" do
before do
@agent = described_class.new
end
it "should return false until the first time check ran" do
expect(@agent.checked_without_error?).to eq(false)
@agent.last_check_at = Time.now
expect(@agent.checked_without_error?).to eq(true)
end
it "should return false when the last error occured after the check" do
@agent.last_check_at = Time.now - 1.minute
@agent.last_error_log_at = Time.now
expect(@agent.checked_without_error?).to eq(false)
end
it "should return true when the last check occured after the last error" do
@agent.last_check_at = Time.now
@agent.last_error_log_at = Time.now - 1.minute
expect(@agent.checked_without_error?).to eq(true)
end
end
end
|