spec/pushpad_spec.rb in pushpad-0.5.1 vs spec/pushpad_spec.rb in pushpad-0.6.0
- old
+ new
@@ -1,12 +1,8 @@
require 'spec_helper'
describe Pushpad do
- let!(:auth_token) { Pushpad.auth_token = 'abc123' }
- let!(:project_id) { Pushpad.project_id = 123 }
- let(:notification) { Pushpad::Notification.new body: "Example message" }
-
describe "#auth_token=" do
it "sets the Pushpad auth token globally" do
Pushpad.auth_token = 'abc123'
expect(Pushpad.auth_token).to eq 'abc123'
end
@@ -21,122 +17,8 @@
describe "#signature_for" do
it "produces the hex-encoded HMAC-SHA1 signature for the data passed as argument" do
signature = Pushpad.signature_for('myuid1')
expect(signature).to eq '27fbe136f5a4aa0b6be74c0e18fa8ce81ad91b60'
- end
- end
-
- def stub_notification_post project_id, params
- stub_request(:post, "https://pushpad.xyz/projects/#{project_id}/notifications").
- with(body: hash_including(params)).
- to_return(status: 201, body: '{}')
- end
-
- describe "#deliver_to" do
-
- shared_examples 'notification params' do
- it "includes the params in the request" do
- req = stub_notification_post project_id, notification: notification_params
- notification.deliver_to [123, 456]
- expect(req).to have_been_made.once
- end
- end
-
- context "a notification with just the required params" do
- let(:notification_params) do
- { body: "Example message" }
- end
- let(:notification) { Pushpad::Notification.new body: notification_params[:body] }
- include_examples 'notification params'
- end
-
- context "a notification with all the optional params" do
- let(:notification_params) do
- {
- body: "Example message",
- title: "Website Name",
- target_url: "http://example.com",
- icon_url: "http://example.com/assets/icon.png",
- ttl: 604800,
- require_interaction: true
- }
- end
- let(:notification) { Pushpad::Notification.new notification_params }
- include_examples 'notification params'
- end
-
- context "with a scalar as a param" do
- it "reaches only that uid" do
- req = stub_notification_post project_id, uids: [100]
- notification.deliver_to(100)
- expect(req).to have_been_made.once
- end
- end
-
- context "with an array as a param" do
- it "reaches only those uids" do
- req = stub_notification_post project_id, uids: [123, 456]
- notification.deliver_to([123, 456])
- expect(req).to have_been_made.once
- end
- end
-
- context "with uids and tags" do
- it "filters audience by uids and tags" do
- req = stub_notification_post project_id, uids: [123, 456], tags: ['tag1']
- notification.deliver_to([123, 456], tags: ['tag1'])
- expect(req).to have_been_made.once
- end
- end
- end
-
- describe "#broadcast" do
-
- shared_examples 'notification params' do
- it "includes the params in the request" do
- req = stub_notification_post project_id, notification: notification_params
- notification.broadcast
- expect(req).to have_been_made.once
- end
- end
-
- context "a notification with just the required params" do
- let(:notification_params) do
- { body: "Example message" }
- end
- let(:notification) { Pushpad::Notification.new body: notification_params[:body] }
- include_examples 'notification params'
- end
-
- context "a notification with all the optional params" do
- let(:notification_params) do
- {
- body: "Example message",
- title: "Website Name",
- target_url: "http://example.com",
- icon_url: "http://example.com/assets/icon.png",
- ttl: 604800,
- require_interaction: true
- }
- end
- let(:notification) { Pushpad::Notification.new notification_params }
- include_examples 'notification params'
- end
-
- context "without params" do
- it "reaches everyone" do
- req = stub_notification_post project_id, {}
- notification.broadcast
- expect(req).to have_been_made.once
- end
- end
-
- context "with tags" do
- it "filters audience by tags" do
- req = stub_notification_post project_id, tags: ['tag1', 'tag2']
- notification.broadcast tags: ['tag1', 'tag2']
- expect(req).to have_been_made.once
- end
end
end
end