require "rails_helper" feature "Admin managing casting submissions" do let(:current_user) { create(:user, admin: true, email: "user@test.com") } let(:project) { create(:project, account: current_user.primary_account, name: "Test Project") } before do sign_in current_user end scenario "admin cannot create casting submission with invalid zoom url", js: true do visit admin_casting_submissions_path cc = create(:casting_call, title: "SpecialCastingCall") click_link create_casting_submission_button expect(page).to have_content new_casting_submission_heading fill_in performer_name_field, with: "TestName" select cc.title, from: casting_call_field fill_in zoom_meeting_url_field, with: "malformed url" expect do click_on submit_casting_submission_form end.to change(CastingSubmission, :count).by(0) expect(page).to have_content zoom_meeting_url_invalid_error fill_in zoom_meeting_url_field, with: "https://similar.google.com/j/24324324?pwd=334kni3j4" expect do click_on submit_casting_submission_form end.to change(CastingSubmission, :count).by(0) expect(page).to have_content zoom_meeting_url_invalid_error fill_in zoom_meeting_url_field, with: "https://s01.zoom.us/j/343434?pwd=dawidj34ijij" expect do click_on submit_casting_submission_form end.to change(CastingSubmission, :count).by(1) expect(page).to have_content create_casting_submission_button end private def create_casting_submission_button t 'admin.casting_submissions.index.actions.new' end def new_casting_submission_heading t 'admin.casting_submissions.new.heading' end def submit_casting_submission_form t 'helpers.submit.casting_submission.create' end def zoom_meeting_url_invalid_error t 'casting_submissions.validation_errors.invalid_meeting_url' end def performer_name_field 'casting_submission[performer_name]' end def zoom_meeting_url_field 'casting_submission[zoom_meeting_url]' end def casting_call_field 'casting_submission[casting_call_id]' end end