Files
fetsite/spec/views/fetprofiles/show.html.erb_spec.rb
2015-09-01 12:03:25 +02:00

88 lines
2.4 KiB
Ruby

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