require 'rails_helper' RSpec.describe Public::CastingSubmissionsController, type: :controller do render_views describe "#show" do let(:casting_submission) { create(:casting_submission) } it "responds successfully" do get :show, params: { token: casting_submission.token } expect(response).to be_successful expect(assigns(:casting_submission)).to eq(casting_submission) end it "shows casting call interview details" do get :show, params: { token: casting_submission.token } expect(response.body).to have_content(casting_submission.performer_name) expect(response.body).to have_content(casting_submission.interview_date) expect(response.body).to have_link("Start Interview") end end describe "#update" do let(:casting_submission) { create(:casting_submission) } it "responds successfully" do patch :update, params: { token: casting_submission.token, casting_submission: casting_submission_params } expect(response).to redirect_to casting_submission_url(token: casting_submission.token) expect(flash.notice).to be_present end end private def casting_submission_params path = Rails.root.join("spec", "fixtures", "files", "contract.pdf") file = Rack::Test::UploadedFile.new(path, "application/pdf") { files: [file]} end end