Convert api/v1/scheduled_statuses controller spec to request spec (#27986)
				
					
				
			This commit is contained in:
		@@ -1,23 +0,0 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Api::V1::ScheduledStatusesController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:user)    { Fabricate(:user) }
 | 
			
		||||
  let(:token)   { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:statuses') }
 | 
			
		||||
  let(:account) { Fabricate(:account) }
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    allow(controller).to receive(:doorkeeper_token) { token }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'GET #index' do
 | 
			
		||||
    it 'returns http success' do
 | 
			
		||||
      get :index
 | 
			
		||||
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@@ -3,4 +3,5 @@
 | 
			
		||||
Fabricator(:scheduled_status) do
 | 
			
		||||
  account { Fabricate.build(:account) }
 | 
			
		||||
  scheduled_at { 20.hours.from_now }
 | 
			
		||||
  params { {} }
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								spec/requests/api/v1/scheduled_status_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								spec/requests/api/v1/scheduled_status_spec.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe 'Scheduled Statuses' do
 | 
			
		||||
  let(:user)    { Fabricate(:user) }
 | 
			
		||||
  let(:token)   { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
 | 
			
		||||
  let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
 | 
			
		||||
 | 
			
		||||
  describe 'GET /api/v1/scheduled_statuses' do
 | 
			
		||||
    context 'when not authorized' do
 | 
			
		||||
      it 'returns http unauthorized' do
 | 
			
		||||
        get api_v1_scheduled_statuses_path
 | 
			
		||||
 | 
			
		||||
        expect(response)
 | 
			
		||||
          .to have_http_status(401)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'with wrong scope' do
 | 
			
		||||
      before do
 | 
			
		||||
        get api_v1_scheduled_statuses_path, headers: headers
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it_behaves_like 'forbidden for wrong scope', 'write write:statuses'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'with correct scope' do
 | 
			
		||||
      let(:scopes) { 'read:statuses' }
 | 
			
		||||
 | 
			
		||||
      context 'without scheduled statuses' do
 | 
			
		||||
        it 'returns http success without json' do
 | 
			
		||||
          get api_v1_scheduled_statuses_path, headers: headers
 | 
			
		||||
 | 
			
		||||
          expect(response)
 | 
			
		||||
            .to have_http_status(200)
 | 
			
		||||
 | 
			
		||||
          expect(body_as_json)
 | 
			
		||||
            .to_not be_present
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      context 'with scheduled statuses' do
 | 
			
		||||
        let!(:scheduled_status) { Fabricate(:scheduled_status, account: user.account) }
 | 
			
		||||
 | 
			
		||||
        it 'returns http success and status json' do
 | 
			
		||||
          get api_v1_scheduled_statuses_path, headers: headers
 | 
			
		||||
 | 
			
		||||
          expect(response)
 | 
			
		||||
            .to have_http_status(200)
 | 
			
		||||
 | 
			
		||||
          expect(body_as_json)
 | 
			
		||||
            .to be_present
 | 
			
		||||
            .and have_attributes(
 | 
			
		||||
              first: include(id: scheduled_status.id.to_s)
 | 
			
		||||
            )
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user