Skip to content
Extraits de code Groupes Projets
conversation_visibilities_controller_spec.rb 1,52 ko
Newer Older
  • Learn to ignore specific revisions
  • # frozen_string_literal: true
    
    
    danielgrippi's avatar
    danielgrippi a validé
    #   Copyright (c) 2010-2011, Diaspora Inc.  This file is
    
    #   licensed under the Affero General Public License version 3 or later.  See
    #   the COPYRIGHT file.
    
    
    describe ConversationVisibilitiesController, :type => :controller do
    
      before do
        @user1 = alice
    
    cmrd Senya's avatar
    cmrd Senya a validé
        sign_in @user1, scope: :user
    
        hash = {
          :author => @user1.person,
          :participant_ids => [@user1.contacts.first.person.id, @user1.person.id],
          :subject => 'not spam',
          :messages_attributes => [ {:author => @user1.person, :text => 'cool stuff'} ]
        }
    
        @conversation = Conversation.create(hash)
    
      end
    
      describe '#destroy' do
        it 'deletes the visibility' do
    
            delete :destroy, params: {conversation_id: @conversation.id}
    
          }.to change(ConversationVisibility, :count).by(-1)
    
        end
    
        it 'does not let a user destroy a visibility that is not theirs' do
          user2 = eve
    
    cmrd Senya's avatar
    cmrd Senya a validé
          sign_in user2, scope: :user
    
            delete :destroy, params: {conversation_id: @conversation.id}
    
          }.not_to change(ConversationVisibility, :count)
    
    cmrd Senya's avatar
    cmrd Senya a validé
    
    
          get :destroy, params: {conversation_id: @conversation.id}
    
          expect(flash.notice).to include("hidden")
        end
    
    cmrd Senya's avatar
    cmrd Senya a validé
    
    
        it 'returns "deleted" when last participant' do
    
          get :destroy, params: {conversation_id: @conversation.id}
    
    cmrd Senya's avatar
    cmrd Senya a validé
          sign_in bob, scope: :user
    
          get :destroy, params: {conversation_id: @conversation.id}
    
          expect(flash.notice).to include("deleted")
        end