Add REST API for Web Push Notifications subscriptions (#7445)
- POST /api/v1/push/subscription - PUT /api/v1/push/subscription - DELETE /api/v1/push/subscription - New OAuth scope: "push" (required for the above methods)
This commit is contained in:
parent
9a794067f7
commit
b4fb766b23
20 changed files with 258 additions and 81 deletions
|
@ -2,20 +2,8 @@ require 'rails_helper'
|
|||
|
||||
RSpec.describe Web::PushSubscription, type: :model do
|
||||
let(:alerts) { { mention: true, reblog: false, follow: true, follow_request: false, favourite: true } }
|
||||
let(:payload_no_alerts) { Web::PushSubscription.new(id: 1, endpoint: 'a', key_p256dh: 'c', key_auth: 'd').as_payload }
|
||||
let(:payload_alerts) { Web::PushSubscription.new(id: 1, endpoint: 'a', key_p256dh: 'c', key_auth: 'd', data: { alerts: alerts }).as_payload }
|
||||
let(:push_subscription) { Web::PushSubscription.new(data: { alerts: alerts }) }
|
||||
|
||||
describe '#as_payload' do
|
||||
it 'only returns id and endpoint' do
|
||||
expect(payload_no_alerts.keys).to eq [:id, :endpoint]
|
||||
end
|
||||
|
||||
it 'returns alerts if set' do
|
||||
expect(payload_alerts.keys).to eq [:id, :endpoint, :alerts]
|
||||
end
|
||||
end
|
||||
|
||||
describe '#pushable?' do
|
||||
it 'obeys alert settings' do
|
||||
expect(push_subscription.send(:pushable?, Notification.new(activity_type: 'Mention'))).to eq true
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue