require 'spec_helper' describe 'users/show.html.erb', :type => :view do let(:join_date) { 5.days.ago } before do allow(view).to receive(:signed_in?).and_return(true) allow(view).to receive(:current_user).and_return(stub_model(User, user_key: 'mjg')) assign(:user, stub_model(User, user_key: 'cam156', created_at: join_date)) assign(:followers, []) assign(:following, []) assign(:trophies, []) assign(:events, []) end it "should draw 3 tabs" do render page = Capybara::Node::Simple.new(rendered) expect(page).to have_selector("ul#myTab.nav.nav-tabs > li > a[href='#contributions']") expect(page).to have_selector("ul#myTab.nav.nav-tabs > li > a[href='#profile']") expect(page).to have_selector("ul#myTab.nav.nav-tabs > li > a[href='#activity_log']") expect(page).to have_selector(".tab-content > div#contributions.tab-pane") expect(page).to have_selector(".tab-content > div#profile.tab-pane") expect(page).to have_selector(".tab-content > div#activity_log.tab-pane") end it "should have the vitals" do render expect(rendered).to match(/Joined on #{join_date.strftime("%b %d, %Y")}/) end context "with trophy" do let(:generic_file) { stub_model(GenericFile, title: ["Fake object"], id: "abc123") } before do allow(view).to receive(:search_session).and_return({}) allow(view).to receive(:blacklight_config).and_return(CatalogController.blacklight_config) allow(view).to receive(:current_search_session).and_return(nil) assign(:trophies, [generic_file]) end it "should have trophy" do render page = Capybara::Node::Simple.new(rendered) expect(page).to have_selector(".tab-content > div#contributions.tab-pane") expect(page).to have_selector("#trophyrow_#{generic_file.id}") end end end