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
+