diff --git a/spec/controllers/oauth/tokens_controller_spec.rb b/spec/controllers/oauth/tokens_controller_spec.rb deleted file mode 100644 index a2eed797e0..0000000000 --- a/spec/controllers/oauth/tokens_controller_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe Oauth::TokensController do - describe 'POST #revoke' do - let!(:user) { Fabricate(:user) } - let!(:application) { Fabricate(:application, confidential: false) } - let!(:access_token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: application) } - let!(:web_push_subscription) { Fabricate(:web_push_subscription, user: user, access_token: access_token) } - - it 'revokes the token and removes subscriptions' do - post :revoke, params: { client_id: application.uid, token: access_token.token } - - expect(access_token.reload.revoked_at) - .to_not be_nil - expect(Web::PushSubscription.where(access_token: access_token).count) - .to eq(0) - expect { web_push_subscription.reload } - .to raise_error(ActiveRecord::RecordNotFound) - end - end -end diff --git a/spec/requests/oauth/token_spec.rb b/spec/requests/oauth/token_spec.rb index 18d232e5ab..74f301c577 100644 --- a/spec/requests/oauth/token_spec.rb +++ b/spec/requests/oauth/token_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe 'Obtaining OAuth Tokens' do +RSpec.describe 'Managing OAuth Tokens' do describe 'POST /oauth/token' do subject do post '/oauth/token', params: params @@ -104,4 +104,23 @@ RSpec.describe 'Obtaining OAuth Tokens' do end end end + + describe 'POST /oauth/revoke' do + subject { post '/oauth/revoke', params: { client_id: application.uid, token: access_token.token } } + + let!(:user) { Fabricate(:user) } + let!(:application) { Fabricate(:application, confidential: false) } + let!(:access_token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: application) } + let!(:web_push_subscription) { Fabricate(:web_push_subscription, user: user, access_token: access_token) } + + it 'revokes the token and removes subscriptions' do + expect { subject } + .to change { access_token.reload.revoked_at }.from(nil).to(be_present) + + expect(Web::PushSubscription.where(access_token: access_token).count) + .to eq(0) + expect { web_push_subscription.reload } + .to raise_error(ActiveRecord::RecordNotFound) + end + end end