API support for muting notifications (and specs)
This commit is contained in:
		
							parent
							
								
									06a7000498
								
							
						
					
					
						commit
						1e69cc4228
					
				
					 2 changed files with 30 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -33,7 +33,7 @@ class Api::V1::AccountsController < Api::BaseController
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def mute
 | 
			
		||||
    MuteService.new.call(current_user.account, @account)
 | 
			
		||||
    MuteService.new.call(current_user.account, @account, notifications: params[:notifications])
 | 
			
		||||
    render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,6 +114,35 @@ RSpec.describe Api::V1::AccountsController, type: :controller do
 | 
			
		|||
    it 'creates a muting relation' do
 | 
			
		||||
      expect(user.account.muting?(other_account)).to be true
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'mutes notifications' do
 | 
			
		||||
      expect(user.account.muting_notifications?(other_account)).to be true
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'POST #mute with notifications set to false' do
 | 
			
		||||
    let(:other_account) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob')).account }
 | 
			
		||||
 | 
			
		||||
    before do
 | 
			
		||||
      user.account.follow!(other_account)
 | 
			
		||||
      post :mute, params: {id: other_account.id, notifications: false }
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'returns http success' do
 | 
			
		||||
      expect(response).to have_http_status(:success)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'does not remove the following relation between user and target user' do
 | 
			
		||||
      expect(user.account.following?(other_account)).to be true
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'creates a muting relation' do
 | 
			
		||||
      expect(user.account.muting?(other_account)).to be true
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'does not mute notifications' do
 | 
			
		||||
      expect(user.account.muting_notifications?(other_account)).to be false
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'POST #unmute' do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue