From a1b45ce85a6630b526bbb0ed60fb3af4b6cd204b Mon Sep 17 00:00:00 2001 From: Bilal Date: Wed, 5 Aug 2020 11:05:23 +0200 Subject: [PATCH] fix MR comments --- app/views/appearance_releases/index.html.erb | 2 +- .../public/amendments_controller_spec.rb | 94 ++++++++++--------- 2 files changed, 51 insertions(+), 45 deletions(-) diff --git a/app/views/appearance_releases/index.html.erb b/app/views/appearance_releases/index.html.erb index 0e00548..65b60ff 100644 --- a/app/views/appearance_releases/index.html.erb +++ b/app/views/appearance_releases/index.html.erb @@ -51,7 +51,7 @@ <%= t(".table_headers.notes") %> <%= t(".table_headers.tags") %> <%= t(".table_headers.signed_at") %> - <%= t 'appearance_releases.index.table_headers.amendment_signed' %> + <%= t '.table_headers.amendment_signed' %> diff --git a/spec/controllers/public/amendments_controller_spec.rb b/spec/controllers/public/amendments_controller_spec.rb index 56fdfd6..257661e 100644 --- a/spec/controllers/public/amendments_controller_spec.rb +++ b/spec/controllers/public/amendments_controller_spec.rb @@ -1,27 +1,22 @@ require 'rails_helper' -release_types = %i[location_release appearance_release] +RSpec.describe Public::AmendmentsController, type: :controller do + let(:user) { create(:user) } + let(:account) { user.primary_account } + let(:project) { create(:project, account: account) } -release_types.each do |release_type| - - RSpec.describe Public::AmendmentsController, type: :controller do - let(:user) { create(:user) } - let(:account) { user.primary_account } - let(:project) { create(:project, account: account) } - let(:contract_template) { create("#{release_type}_contract_template".to_sym, :with_amendment_clause, project: project) } - let(:release) { create(release_type, contract_template: contract_template, project: project) } - - render_views + render_views + shared_examples "amendments signing controller" do describe "#new" do it "shows amendment signing form for non-signed amendment of a release" do - expect(release.amendment_signed?).to be_falsey + expect(subject.amendment_signed?).to be_falsey get :new, params: { account_id: account, project_id: project, - contract_template_id: release.contract_template, - "#{release_type}_id": release + contract_template_id: subject.contract_template, + "#{subject.model_name.param_key}_id": subject } expect(response).to be_successful @@ -31,15 +26,13 @@ release_types.each do |release_type| end it "shows already signed message for signed amendment of a release" do - signed_release = create(release_type, :amendment_signed, contract_template: contract_template, project: project) - expect(signed_release.amendment_signed?).to be_truthy get :new, params: { account_id: account, project_id: project, - contract_template_id: release.contract_template, - "#{release_type}_id": signed_release + contract_template_id: signed_release.contract_template, + "#{signed_release.model_name.param_key}_id": signed_release } expect(response).to be_successful @@ -51,14 +44,14 @@ release_types.each do |release_type| describe "#create" do it "signs amendment" do - expect(release.amendment_signed?).to be_falsey + expect(subject.amendment_signed?).to be_falsey post :create, params: { account_id: account, project_id: project, - contract_template_id: release.contract_template, - "#{release_type}_id": release, - "#{release_type}": { + contract_template_id: subject.contract_template, + "#{subject.model_name.param_key}_id": subject, + "#{subject.model_name.param_key}": { amendment_signer_name: "Signer Name", amendment_signature_base64: signature_base64 } @@ -70,21 +63,19 @@ release_types.each do |release_type| expect(body).not_to match already_signed_message expect(body).to match signed_successfully_message - expect(release.class.last.amendment_signed?).to be_truthy - expect(release.class.last.amendment_signer_name).to eq "Signer Name" + expect(subject.class.last.amendment_signed?).to be_truthy + expect(subject.class.last.amendment_signer_name).to eq "Signer Name" end it "shows already signed message for signed amendment of a release" do - signed_release = create(release_type, :amendment_signed, amendment_signer_name: "Big Signer", contract_template: contract_template, project: project) - expect(signed_release.amendment_signed?).to be_truthy post :create, params: { account_id: account, project_id: project, - contract_template_id: release.contract_template, - "#{release_type}_id": signed_release, - "#{release_type}": { + contract_template_id: signed_release.contract_template, + "#{signed_release.model_name.param_key}_id": signed_release, + "#{signed_release.model_name.param_key}": { amendment_signer_name: "Signer Who", amendment_signature_base64: signature_base64 } @@ -96,23 +87,38 @@ release_types.each do |release_type| expect(body).to match already_signed_message expect(signed_release.amendment_signed?).to be_truthy - expect(signed_release.amendment_signer_name).to eq "Big Signer" + expect(signed_release.amendment_signer_name).to eq "Amendment Signer" end end - - private - - def already_signed_message - t 'public.amendments.create.amendment_already_signed_message' - end - - def signed_successfully_message - t 'public.amendments.create.amendment_signed_message' - end - - def signature_base64 - @signature_base64 ||= Base64Image.from_image(file_fixture('signature.png')).data_uri - end end + context "for location release" do + let(:contract_template) { create(:location_release_contract_template, :with_amendment_clause, project: project) } + let(:signed_release) { create(:location_release, :amendment_signed, contract_template: contract_template, project: project) } + subject { create(:location_release, contract_template: contract_template, project: project) } + + it_behaves_like "amendments signing controller" + end + + context "for location release" do + let(:contract_template) { create(:appearance_release_contract_template, :with_amendment_clause, project: project) } + let(:signed_release) { create(:appearance_release, :amendment_signed, contract_template: contract_template, project: project) } + subject { create(:appearance_release, contract_template: contract_template, project: project) } + + it_behaves_like "amendments signing controller" + end + + private + + def already_signed_message + t 'public.amendments.create.amendment_already_signed_message' + end + + def signed_successfully_message + t 'public.amendments.create.amendment_signed_message' + end + + def signature_base64 + @signature_base64 ||= Base64Image.from_image(file_fixture('signature.png')).data_uri + end end \ No newline at end of file