Move `api/v2/filters/*` to request spec (#28956)

main-rebase-security-fix
Matt Jankowski 2024-03-13 04:47:09 -04:00 committed by GitHub
parent 8349b45d60
commit 71eecbfa1f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 33 deletions

View File

@ -2,25 +2,20 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::V2::Filters::KeywordsController do RSpec.describe 'API V2 Filters Keywords' do
render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
let(:filter) { Fabricate(:custom_filter, account: user.account) } let(:filter) { Fabricate(:custom_filter, account: user.account) }
let(:other_user) { Fabricate(:user) } let(:other_user) { Fabricate(:user) }
let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) } let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
before do describe 'GET /api/v2/filters/:filter_id/keywords' do
allow(controller).to receive(:doorkeeper_token) { token }
end
describe 'GET #index' do
let(:scopes) { 'read:filters' } let(:scopes) { 'read:filters' }
let!(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) } let!(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
it 'returns http success' do it 'returns http success' do
get :index, params: { filter_id: filter.id } get "/api/v2/filters/#{filter.id}/keywords", headers: headers
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
expect(body_as_json) expect(body_as_json)
.to contain_exactly( .to contain_exactly(
@ -30,18 +25,18 @@ RSpec.describe Api::V2::Filters::KeywordsController do
context "when trying to access another's user filters" do context "when trying to access another's user filters" do
it 'returns http not found' do it 'returns http not found' do
get :index, params: { filter_id: other_filter.id } get "/api/v2/filters/#{other_filter.id}/keywords", headers: headers
expect(response).to have_http_status(404) expect(response).to have_http_status(404)
end end
end end
end end
describe 'POST #create' do describe 'POST /api/v2/filters/:filter_id/keywords' do
let(:scopes) { 'write:filters' } let(:scopes) { 'write:filters' }
let(:filter_id) { filter.id } let(:filter_id) { filter.id }
before do before do
post :create, params: { filter_id: filter_id, keyword: 'magic', whole_word: false } post "/api/v2/filters/#{filter_id}/keywords", headers: headers, params: { keyword: 'magic', whole_word: false }
end end
it 'creates a filter', :aggregate_failures do it 'creates a filter', :aggregate_failures do
@ -65,12 +60,12 @@ RSpec.describe Api::V2::Filters::KeywordsController do
end end
end end
describe 'GET #show' do describe 'GET /api/v2/filters/keywords/:id' do
let(:scopes) { 'read:filters' } let(:scopes) { 'read:filters' }
let(:keyword) { Fabricate(:custom_filter_keyword, keyword: 'foo', whole_word: false, custom_filter: filter) } let(:keyword) { Fabricate(:custom_filter_keyword, keyword: 'foo', whole_word: false, custom_filter: filter) }
before do before do
get :show, params: { id: keyword.id } get "/api/v2/filters/keywords/#{keyword.id}", headers: headers
end end
it 'responds with the keyword', :aggregate_failures do it 'responds with the keyword', :aggregate_failures do
@ -90,12 +85,12 @@ RSpec.describe Api::V2::Filters::KeywordsController do
end end
end end
describe 'PUT #update' do describe 'PUT /api/v2/filters/keywords/:id' do
let(:scopes) { 'write:filters' } let(:scopes) { 'write:filters' }
let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) } let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
before do before do
get :update, params: { id: keyword.id, keyword: 'updated' } put "/api/v2/filters/keywords/#{keyword.id}", headers: headers, params: { keyword: 'updated' }
end end
it 'updates the keyword', :aggregate_failures do it 'updates the keyword', :aggregate_failures do
@ -113,12 +108,12 @@ RSpec.describe Api::V2::Filters::KeywordsController do
end end
end end
describe 'DELETE #destroy' do describe 'DELETE /api/v2/filters/keywords/:id' do
let(:scopes) { 'write:filters' } let(:scopes) { 'write:filters' }
let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) } let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
before do before do
delete :destroy, params: { id: keyword.id } delete "/api/v2/filters/keywords/#{keyword.id}", headers: headers
end end
it 'destroys the keyword', :aggregate_failures do it 'destroys the keyword', :aggregate_failures do

View File

@ -2,25 +2,20 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::V2::Filters::StatusesController do RSpec.describe 'API V2 Filters Statuses' do
render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
let(:filter) { Fabricate(:custom_filter, account: user.account) } let(:filter) { Fabricate(:custom_filter, account: user.account) }
let(:other_user) { Fabricate(:user) } let(:other_user) { Fabricate(:user) }
let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) } let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
before do describe 'GET /api/v2/filters/:filter_id/statuses' do
allow(controller).to receive(:doorkeeper_token) { token }
end
describe 'GET #index' do
let(:scopes) { 'read:filters' } let(:scopes) { 'read:filters' }
let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
it 'returns http success' do it 'returns http success' do
get :index, params: { filter_id: filter.id } get "/api/v2/filters/#{filter.id}/statuses", headers: headers
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
expect(body_as_json) expect(body_as_json)
.to contain_exactly( .to contain_exactly(
@ -30,7 +25,7 @@ RSpec.describe Api::V2::Filters::StatusesController do
context "when trying to access another's user filters" do context "when trying to access another's user filters" do
it 'returns http not found' do it 'returns http not found' do
get :index, params: { filter_id: other_filter.id } get "/api/v2/filters/#{other_filter.id}/statuses", headers: headers
expect(response).to have_http_status(404) expect(response).to have_http_status(404)
end end
end end
@ -42,7 +37,7 @@ RSpec.describe Api::V2::Filters::StatusesController do
let!(:status) { Fabricate(:status) } let!(:status) { Fabricate(:status) }
before do before do
post :create, params: { filter_id: filter_id, status_id: status.id } post "/api/v2/filters/#{filter_id}/statuses", headers: headers, params: { status_id: status.id }
end end
it 'creates a filter', :aggregate_failures do it 'creates a filter', :aggregate_failures do
@ -65,12 +60,12 @@ RSpec.describe Api::V2::Filters::StatusesController do
end end
end end
describe 'GET #show' do describe 'GET /api/v2/filters/statuses/:id' do
let(:scopes) { 'read:filters' } let(:scopes) { 'read:filters' }
let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
before do before do
get :show, params: { id: status_filter.id } get "/api/v2/filters/statuses/#{status_filter.id}", headers: headers
end end
it 'responds with the filter', :aggregate_failures do it 'responds with the filter', :aggregate_failures do
@ -89,12 +84,12 @@ RSpec.describe Api::V2::Filters::StatusesController do
end end
end end
describe 'DELETE #destroy' do describe 'DELETE /api/v2/filters/statuses/:id' do
let(:scopes) { 'write:filters' } let(:scopes) { 'write:filters' }
let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
before do before do
delete :destroy, params: { id: status_filter.id } delete "/api/v2/filters/statuses/#{status_filter.id}", headers: headers
end end
it 'destroys the filter', :aggregate_failures do it 'destroys the filter', :aggregate_failures do