require "rails_helper" RSpec.describe "Admin invites user", type: :system do let(:admin) { create(:user, :super_admin) } before do sign_in admin end context "when SMTP is not configured" do before do allow(ForemInstance).to receive(:smtp_enabled?).and_return(false) visit new_admin_invitation_path end it "shows a header" do header = "Setup SMTP to invite users" expect(page).to have_content(header) end it "shows a banner" do message = "SMTP settings are required so that your Forem can send emails. If you wish to send invites, "\ "email digests and activity notifications you will need to specify which email host will relay those "\ "messages for you." expect(page).to have_content(message) end it "contains a link to the documentation" do expect(page).to have_link("read more about SMTP Settings in our admin guide", href: "https://admin.forem.com/docs/advanced-customization/config/smtp-settings") end it "contains a link to configure SMTP settings" do expect(page).to have_link("Configure your SMTP Settings", href: admin_config_path(anchor: "smtp-section")) end it "does not contain any for fields" do expect(page).not_to have_field "Email" expect(page).not_to have_field "Name" end it "does not contain any submit buttons" do expect(page).not_to have_button "Invite User" end end context "when SMTP is configured" do before do allow(ForemInstance).to receive(:smtp_enabled?).and_return(true) visit new_admin_invitation_path end it "shows the input fields" do expect(page).to have_field "Email" expect(page).to have_field "Name" end it "shows the submit button" do expect(page).to have_button "Invite User" end end end