require 'spec_helper' describe "fetprofiles/show", :type => :view do # include RSpecHtmlMatchers before(:each) do # @fetprofile = #assign(:fetprofile, stub_model(Fetprofile, FactoryGirl.attributes_for(:fetprofile))) default_url_options[:locale] = :de @fetprofile = FactoryGirl.create(:fetprofile,:street => "secret adress") assign(:fetprofile,@fetprofile) assign(:memberships, []) assign(:gremientabs, []) end def self.login_fet_user before(:each) do @request.env["devise.mapping"] = Devise.mappings[:user] user = FactoryGirl.build(:user) user = User.find_by_email(user.email) || user user.save user.add_role(:fetuser) # user.confirm! @user=user @ability= Ability.new(@user) # controller.stub(:current_ability) { @ability } allow(view).to receive(:current_ability).and_return(@ability) sign_in user end end it "calls vorname on fetprofile" do expect(@fetprofile).to receive(:vorname).at_least(1).times render end it "doesn't call users" do Fetprofile.any_instance.should_not_receive(:users) # expect(Fetprofile.any_instance).to receive(:vorname) render end it "doesn't call memberships" do Fetprofile.any_instance.should_not_receive(:memberships) render end it "doesn't call gremien" do Fetprofile.any_instance.should_not_receive(:gremien) render end it "renders public attributes" do render expect(rendered).to match(/#{@fetprofile.vorname}/) expect(rendered).to match(/#{@fetprofile.nachname}/) expect(rendered).to match(/#{@fetprofile.desc}/) expect(rendered).to match(/#{@fetprofile.fetmail}/) expect(rendered).to have_tag('div') # rendered.should match(/Nachname/) # rendered.should match(/Short/) # rendered.should match(/Fetmailalias/) # rendered.should match(/MyText/) # rendered.should match(/false/) end it "doesn't render secrets" do render expect(rendered).not_to match(/#{@fetprofile.street}/) end describe "with fet user" do login_fet_user it "can see intern" do expect(@ability.can?(:seeintern,@fetprofile)).to be true end let(:current_ability) {@ability} it "renders secrets" do render expect(rendered).to match(/#{@fetprofile.street}/) end it "renders edit path" do render expect(rendered).to match(/#{edit_fetprofile_path(@fetprofile)}/) end end end