require 'spec_helper' describe "fetprofiles/show", :type => :view do # include RSpecHtmlMatchers include ThemesForRails::CommonMethods include ThemesForRails::UrlHelpers # include ThemesForRails::ActionController include ::ThemesForRails::ActionView include ::ActionView::Helpers::AssetTagHelper include ::ERB::Util include ::ActionView::Helpers::TagHelper include ::ActionView::Helpers::FormTagHelper def theme_name 'blue2' end before(:each) do view.view_paths.push 'app/views/themes/blue2' self.lookup_context.prefixes = ['app/views/themes/blue2'] view.lookup_context.prefixes.push 'app/views/' view= find("fetprofiles/show") # view.view_paths.insert 0, ::ActionView::FileSystemResolver.new(theme_view_path_for(name)) # @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, []) # view.theme "blue2" 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 "has working filters" do expect(true).to be true 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 pending "renders edit path" do render expect(rendered).to match(/#{edit_fetprofile_path(@fetprofile)}/) end end end