spec/lib/pushover/pushover_spec.rb in pushover-0.5.1 vs spec/lib/pushover/pushover_spec.rb in pushover-0.99.0

- old
+ new

@@ -15,11 +15,17 @@ end end describe "#parameters?" do it 'will return true only if every key is set to something.' do - keys.each {|k| Pushover.send("#{k}=", 'ladeda')} + keys.each do |k| + if k == :timestamp + Pushover.send("timestamp=", '1970-01-01 00:00:01 UTC') + else + Pushover.send("#{k}=", 'ladeda') + end + end parameters?.should eq true end it 'will return false otherwise.' do Pushover.send("#{keys.first}=", "something") parameters?.should eq false @@ -39,10 +45,46 @@ end describe "#notification" do it "can send a notification" do setup_webmocks - resp = Pushover.notification message:'a message', token:'good_token', user:'good_user' - resp.code.should eq "200" + Pushover.notification message:'a message', token:'good_token', user:'good_user' + WebMock.should have_requested(:post, /.*api.pushover.net.*/).with do |req| + puts req.body hash_including(priority:'ajkasdfj') + end end end + + describe "extra behavior" do + describe "Priority" do + it "can be set by text" do + setup_webmocks + Pushover.notification message:'a message', token:'good_token', user:'good_user', priority:'low' + WebMock.should have_requested(:post, /.*api.pushover.net.*/).with { |req| req.body.include? 'priority=-1'} + setup_webmocks + Pushover.notification message:'a message', token:'good_token', user:'good_user', priority:'high' + WebMock.should have_requested(:post, /.*api.pushover.net.*/).with { |req| req.body.include? 'priority=1'} + end + it "falls back to normal" do + setup_webmocks + Pushover.notification message:'a message', token:'good_token', user:'good_user', priority:'kwkru' + WebMock.should have_requested(:post, /api.pushover.net/).with { |req| req.body.include? 'priority=0' } + end + end + + describe "Time" do + it "can be set by epoch" do + setup_webmocks + Pushover.notification message:'a message', token:'good_token', user:'good_user', timestamp:1000 + Pushover.notification message:'a message', token:'good_token', user:'good_user', timestamp:'1000' + WebMock.should have_requested(:post, /api.pushover.net/).with { |req| req.body.include? 'timestamp=1000' }.twice + end + + it "can be set by a text string" do + setup_webmocks + Pushover.notification message:'a message', token:'good_token', user:'good_user', timestamp:'1970-01-01 00:00:01 UTC' + WebMock.should have_requested(:post, /api.pushover.net/).with { |req| req.body.include? 'timestamp=1' } + end + end + end end +