require "rails_helper" describe Public::MaterialReleasesController do let(:user) { create(:user) } let(:project) { create(:project, account: user.primary_account) } render_views describe "#create" do it "allows photos param" do contract_template = create(:contract_template, project: project) post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, material_release: material_release_params_with_photos } expect(response).to be_successful expect(MaterialRelease.last.photos.attached?).to eq true end it "logs analytics" do contract_template = create(:contract_template, project: project) expect { post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, material_release: material_release_params } }.to( have_enqueued_job(TrackAnalyticsJob) .with(nil, nil, :track_create_native_release, release_type: "MaterialRelease", account: project.account, user_agent: "Rails Testing", user_ip: "0.0.0.0") ) end it "displays validation errors" do contract_template = create(:contract_template, project: project) sign_in(user) post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, material_release: { person_address_city: "Albuquerque" } } body = CGI.unescape_html(response.body) expect(body).to match /Person first name can't be blank/ expect(body).to match /Person last name can't be blank/ expect(body).to match />can't be blank