Skip to content
Extraits de code Groupes Projets
contacts_controller_spec.rb 2,29 ko
Newer Older
  • Learn to ignore specific revisions
  • 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.
    
    require 'spec_helper'
    
    
    describe ContactsController, :type => :controller do
    
    cmrd Senya's avatar
    cmrd Senya a validé
        sign_in bob, scope: :user
    
        allow(@controller).to receive(:current_user).and_return(bob)
    
    Raphael Sofaer's avatar
    Raphael Sofaer a validé
      describe '#index' do
    
        context 'format mobile' do
          it "succeeds" do
            get :index, :format => 'mobile'
    
            expect(response).to be_success
    
        context 'format html' do
          it "succeeds" do
            get :index
    
            expect(response).to be_success
    
          end
    
          it "assigns contacts" do
            get :index
            contacts = assigns(:contacts)
    
            expect(contacts.to_set).to eq(bob.contacts.to_set)
    
          end
    
          it "shows only contacts a user is sharing with" do
            contact = bob.contacts.first
            contact.update_attributes(:sharing => false)
    
    
            expect(contacts.to_set).to eq(bob.contacts.receiving.to_set)
    
          end
    
          it "shows all contacts (sharing and receiving)" do
            contact = bob.contacts.first
            contact.update_attributes(:sharing => false)
    
            get :index, :set => "all"
            contacts = assigns(:contacts)
    
            expect(contacts.to_set).to eq(bob.contacts.to_set)
    
        context "format json" do
          before do
            @person1 = FactoryGirl.create(:person)
            bob.share_with(@person1, bob.aspects.first)
            @person2 = FactoryGirl.create(:person)
          end
    
    
          it "succeeds" do
    
            get :index, q: @person1.first_name, format: "json"
    
            expect(response).to be_success
          end
    
          it "responds with json" do
    
            get :index, q: @person1.first_name, format: "json"
            expect(response.body).to eq([@person1].to_json)
    
          end
    
          it "only returns contacts" do
    
            get :index, q: @person2.first_name, format: "json"
    
            expect(response.body).to eq([].to_json)
          end
        end
      end
    
    
      describe '#spotlight' do
    
        it 'succeeds' do
    
          get :spotlight
    
          expect(response).to be_success
    
        end
    
        it 'gets queries for users in the app config' do
    
          get :spotlight
    
          expect(assigns[:people]).to eq([alice.person])