diff --git a/app/views/articles/_sidebar_nav.html.erb b/app/views/articles/_sidebar_nav.html.erb index 063d4936b..0c7f8a29b 100644 --- a/app/views/articles/_sidebar_nav.html.erb +++ b/app/views/articles/_sidebar_nav.html.erb @@ -45,7 +45,8 @@ - <% if user_signed_in? %> + + <% if user_signed_in? && current_user.following_tags_count.positive? %> My Tags @@ -53,21 +54,42 @@ - <% else %> - Popular Tags - - <% Tag.where(supported: true).order(hotness_score: :desc).limit(30).pluck(:id, :name).each do |tag_array| %> - - - #<%= tag_array.second %> - - - Follow - + <% elsif user_signed_in? %> + + Explore + + All tags + + + + <% Tag.where(supported: true).order(hotness_score: :desc).limit(5).pluck(:id, :name).each do |tag_array| %> + + + #<%= tag_array.second %> + + + Follow + <% end %> + <% else %> + Popular Tags + + <% Tag.where(supported: true).order(hotness_score: :desc).limit(30).pluck(:id, :name).each do |tag_array| %> + + + #<%= tag_array.second %> + + + Follow + + + <% end %> + <% end %> diff --git a/spec/system/homepage/user_visits_homepage_spec.rb b/spec/system/homepage/user_visits_homepage_spec.rb index 3468a1c82..1eb3268fe 100644 --- a/spec/system/homepage/user_visits_homepage_spec.rb +++ b/spec/system/homepage/user_visits_homepage_spec.rb @@ -87,6 +87,7 @@ RSpec.describe "User visits a homepage", type: :system do user.follows.create!(followable: ruby_tag) user.follows.create!(followable: create(:tag, name: "go", hotness_score: 99)) user.follows.create!(followable: create(:tag, name: "javascript"), points: 3) + user.update!(following_tags_count: 3) visit "/" end @@ -112,6 +113,17 @@ RSpec.describe "User visits a homepage", type: :system do end end + context "when user does not follow tags" do + before do + visit "/" + end + + it "shows 'Explore Tags' and links to /tags", js: true do + expect(page).to have_text("Explore") + expect(page).to have_selector(:css, 'a[href="/tags"]') + end + end + context "when rendering < 5 navigation links" do let!(:navigation_link_1) do create(:navigation_link,