* Softrun rubocop * Hardrun rubocop (-A) * Change a rubocop rule * Add missing cops * Undo & redo rubocop -A
40 lines
1.6 KiB
Ruby
40 lines
1.6 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe Device do
|
|
let(:device) { create(:device) }
|
|
let(:user) { create(:user) }
|
|
|
|
describe "validations" do
|
|
subject { device }
|
|
|
|
describe "builtin validations" do
|
|
it { is_expected.to belong_to(:consumer_app) }
|
|
it { is_expected.to belong_to(:user) }
|
|
|
|
it { is_expected.to validate_presence_of(:token) }
|
|
it { is_expected.to validate_uniqueness_of(:token).scoped_to(%i[user_id platform consumer_app_id]) }
|
|
end
|
|
end
|
|
|
|
describe "#create_notification" do
|
|
let(:data_hash) { { "alert" => "Hello World" } }
|
|
|
|
context "when iOS device" do
|
|
let(:consumer_app_ios) { create(:consumer_app, platform: :ios) }
|
|
|
|
it "creates an Apns2 notification" do
|
|
mocked_objects = mock_rpush(consumer_app_ios)
|
|
|
|
device = create(:device, user: user, platform: "iOS")
|
|
device.create_notification("Subtitle", "Body", data_hash)
|
|
expect(mocked_objects[:rpush_notification].data[:aps][:alert][:title]).to eq(Settings::Community.community_name)
|
|
expect(mocked_objects[:rpush_notification].data[:aps][:alert][:subtitle]).to eq("Subtitle")
|
|
expect(mocked_objects[:rpush_notification].data[:aps][:alert][:body]).to eq("Body")
|
|
expect(mocked_objects[:rpush_notification].data[:aps][:"thread-id"]).to eq(Settings::Community.community_name)
|
|
expect(mocked_objects[:rpush_notification].data[:aps][:sound]).to eq("default")
|
|
expect(mocked_objects[:rpush_notification].data[:aps][:"mutable-content"]).to eq(1)
|
|
expect(mocked_objects[:rpush_notification].data[:data]).to eq(data_hash)
|
|
end
|
|
end
|
|
end
|
|
end
|