Skip to content
Extraits de code Groupes Projets
reshares_controller_spec.rb 1,7 ko
Newer Older
  • Learn to ignore specific revisions
  • require 'spec_helper'
    
    
    describe ResharesController, :type => :controller do
    
      describe '#create' do
    
        let(:post_request!) {
          post :create, :format => :json, :root_guid => @post_guid
        }
    
        before do
    
          @post = FactoryGirl.create(:status_message, :public => true)
          @post_guid = @post.guid
    
        it 'requires authentication' do
    
          expect(response).not_to be_success
    
        end
    
        context 'with an authenticated user' do
          before do
            sign_in :user, bob
    
            allow(@controller).to receive(:current_user).and_return(bob)
    
          end
    
          it 'succeeds' do
    
            expect(response).to be_success
    
          end
    
          it 'creates a reshare' do
            expect{
    
            }.to change(Reshare, :count).by(1)
    
          it 'calls dispatch' do
    
            expect(bob).to receive(:dispatch_post).with(anything, hash_including(:additional_subscribers))
    
    
          context 'resharing a reshared post' do
            before do
              FactoryGirl.create(:reshare, :root => @post, :author => bob.person)
            end
    
            it 'doesn\'t allow the user to reshare the post again' do
              post_request!
    
              expect(response.code).to eq('422')
              expect(response.body.strip).to be_empty
    
    
          context 'resharing another user\'s reshare' do
            before do
              @root = @post
              @post = FactoryGirl.create(:reshare, :root => @root, :author => alice.person)
            end
    
            it 'reshares the absolute root' do
              post_request!
              expect(@post.reshares.count).to eq(0)
              expect(@root.reshares.count).to eq(2)
            end
          end