require 'rails_helper' RSpec.feature "Users", type: :feature do context "when the user is a regular user" do let!(:user) { create(:user) } let!(:contest) { create(:contest, user: user) } before do login(user) end it "should not see a link to all users" do visit root_path expect(page).not_to have_content(I18n.t("nav.users")) end it "should not be able to see the user list" do visit users_path expect(page).not_to have_content(I18n.t("users.index.title")) end it "should be able to create a new contest" do visit root_path click_link "Create a new contest" expect(page).to have_content(I18n.t("contests.new.title")) end it "should be able to open an existing contest" do visit root_path expect(page).to have_content(contest.name) find("div.card", text: contest.name).find("a").click expect(page).to have_content(I18n.t("contests.show.title", name: contest.name)) end end context "when the user is an admin" do let!(:admin) { create(:user, :admin) } let!(:user) { create(:user) } before do login(admin) end it "should see a link to all users" do visit root_path expect(page).to have_content(I18n.t("nav.users")) end it "should be able to see the user list" do visit users_path expect(page).to have_content(I18n.t("users.index.title")) expect(page).to have_content(user.username) end end end