Add support for private pinned posts (#16954)
* Add support for private pinned toots * Allow local user to pin private toots * Change wording to avoid "direct message"
This commit is contained in:
		@@ -39,7 +39,7 @@ describe Api::V1::Accounts::StatusesController do
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'with only pinned' do
 | 
			
		||||
    context 'with only own pinned' do
 | 
			
		||||
      before do
 | 
			
		||||
        Fabricate(:status_pin, account: user.account, status: Fabricate(:status, account: user.account))
 | 
			
		||||
      end
 | 
			
		||||
@@ -50,5 +50,38 @@ describe Api::V1::Accounts::StatusesController do
 | 
			
		||||
        expect(response).to have_http_status(200)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context "with someone else's pinned statuses" do
 | 
			
		||||
      let(:account)        { Fabricate(:account, username: 'bob', domain: 'example.com') }
 | 
			
		||||
      let(:status)         { Fabricate(:status, account: account) }
 | 
			
		||||
      let(:private_status) { Fabricate(:status, account: account, visibility: :private) }
 | 
			
		||||
      let!(:pin)           { Fabricate(:status_pin, account: account, status: status) }
 | 
			
		||||
      let!(:private_pin)   { Fabricate(:status_pin, account: account, status: private_status) }
 | 
			
		||||
 | 
			
		||||
      it 'returns http success' do
 | 
			
		||||
        get :index, params: { account_id: account.id, pinned: true }
 | 
			
		||||
        expect(response).to have_http_status(200)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      context 'when user does not follow account' do
 | 
			
		||||
        it 'lists the public status only' do
 | 
			
		||||
          get :index, params: { account_id: account.id, pinned: true }
 | 
			
		||||
          json = body_as_json
 | 
			
		||||
          expect(json.map { |item| item[:id].to_i }).to eq [status.id]
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      context 'when user follows account' do
 | 
			
		||||
        before do
 | 
			
		||||
          user.account.follow!(account)
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        it 'lists both the public and the private statuses' do
 | 
			
		||||
          get :index, params: { account_id: account.id, pinned: true }
 | 
			
		||||
          json = body_as_json
 | 
			
		||||
          expect(json.map { |item| item[:id].to_i }.sort).to eq [status.id, private_status.id].sort
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user