Nessuna descrizione http://j1x-huginn.herokuapp.com

digest_email_agent_spec.rb 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. require 'spec_helper'
  2. describe Agents::DigestEmailAgent do
  3. def get_message_part(mail, content_type)
  4. mail.body.parts.find { |p| p.content_type.match content_type }.body.raw_source
  5. end
  6. before do
  7. @checker = Agents::DigestEmailAgent.new(:name => "something", :options => { :expected_receive_period_in_days => 2, :subject => "something interesting" })
  8. @checker.user = users(:bob)
  9. @checker.save!
  10. end
  11. describe "#receive" do
  12. it "queues any payloads it receives" do
  13. event1 = Event.new
  14. event1.agent = agents(:bob_rain_notifier_agent)
  15. event1.payload = "Something you should know about"
  16. event1.save!
  17. event2 = Event.new
  18. event2.agent = agents(:bob_weather_agent)
  19. event2.payload = "Something else you should know about"
  20. event2.save!
  21. Agents::DigestEmailAgent.async_receive(@checker.id, [event1.id, event2.id])
  22. @checker.reload.memory[:queue].should == ["Something you should know about", "Something else you should know about"]
  23. end
  24. end
  25. describe "#check" do
  26. it "should send an email" do
  27. Agents::DigestEmailAgent.async_check(@checker.id)
  28. ActionMailer::Base.deliveries.should == []
  29. @checker.memory[:queue] = ["Something you should know about",
  30. { :title => "Foo", :url => "http://google.com", :bar => 2 },
  31. { "message" => "hi", :woah => "there" },
  32. { "test" => 2 }]
  33. @checker.save!
  34. Agents::DigestEmailAgent.async_check(@checker.id)
  35. ActionMailer::Base.deliveries.last.to.should == ["bob@example.com"]
  36. ActionMailer::Base.deliveries.last.subject.should == "something interesting"
  37. get_message_part(ActionMailer::Base.deliveries.last, /plain/).strip.should == "Something you should know about\n\nFoo\n bar: 2\n url: http://google.com\n\nhi\n woah: there\n\nEvent\n test: 2"
  38. @checker.reload.memory[:queue].should == []
  39. end
  40. end
  41. end