Add endpoint to remove web push subscription (#32626)
This commit is contained in:
parent
d1b20ea8f7
commit
05f23df3b7
6 changed files with 76 additions and 5 deletions
55
spec/requests/api/web/push_subscriptions_spec.rb
Normal file
55
spec/requests/api/web/push_subscriptions_spec.rb
Normal file
|
@ -0,0 +1,55 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'API Web Push Subscriptions' do
|
||||
describe 'DELETE /api/web/push_subscriptions/:id' do
|
||||
subject { delete api_web_push_subscription_path(token) }
|
||||
|
||||
context 'when the subscription exists' do
|
||||
let!(:web_push_subscription) do
|
||||
Fabricate(:web_push_subscription)
|
||||
end
|
||||
let(:token) do
|
||||
web_push_subscription.generate_token_for(:unsubscribe)
|
||||
end
|
||||
|
||||
it 'deletes the subscription' do
|
||||
expect { subject }
|
||||
.to change(Web::PushSubscription, :count).by(-1)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the subscription does not exist' do
|
||||
let(:web_push_subscription) do
|
||||
Fabricate(:web_push_subscription)
|
||||
end
|
||||
let(:token) do
|
||||
web_push_subscription.generate_token_for(:unsubscribe)
|
||||
end
|
||||
|
||||
before do
|
||||
token # memoize before destroying the record
|
||||
web_push_subscription.destroy!
|
||||
end
|
||||
|
||||
it 'does nothing' do
|
||||
subject
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the token is invalid' do
|
||||
let(:token) { 'invalid--invalid' }
|
||||
|
||||
it 'does nothing' do
|
||||
subject
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -61,6 +61,7 @@ RSpec.describe Web::PushNotificationWorker do
|
|||
'Ttl' => '172800',
|
||||
'Urgency' => 'normal',
|
||||
'Authorization' => 'WebPush jwt.encoded.payload',
|
||||
'Unsubscribe-URL' => %r{/api/web/push_subscriptions/},
|
||||
},
|
||||
body: "+\xB8\xDBT}\u0013\xB6\xDD.\xF9\xB0\xA7\xC8Ҁ\xFD\x99#\xF7\xAC\x83\xA4\xDB,\u001F\xB5\xB9w\x85>\xF7\xADr"
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue