Compare commits
3 Commits
add-requir
...
add-legal-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
89f464b641 | ||
|
|
4f2fe52dd5 | ||
|
|
7cdb814d6d |
@@ -62,7 +62,8 @@ class ContractTemplatesController < ApplicationController
|
|||||||
def contract_template_params
|
def contract_template_params
|
||||||
params
|
params
|
||||||
.require(:contract_template)
|
.require(:contract_template)
|
||||||
.permit(:name, :release_type, :body, :guardian_clause, :fee,
|
.permit(:name, :release_type, :body, :guardian_clause,
|
||||||
|
:signature_legal_text, :fee,
|
||||||
:applicable_medium_id, :applicable_medium_text,
|
:applicable_medium_id, :applicable_medium_text,
|
||||||
:territory_id, :territory_text,
|
:territory_id, :territory_text,
|
||||||
:term_id, :term_text,
|
:term_id, :term_text,
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ class ContractTemplate < ApplicationRecord
|
|||||||
monetize :fee_cents
|
monetize :fee_cents
|
||||||
has_rich_text :body
|
has_rich_text :body
|
||||||
has_rich_text :guardian_clause
|
has_rich_text :guardian_clause
|
||||||
|
has_rich_text :signature_legal_text
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :release_type, presence: true
|
validates :release_type, presence: true
|
||||||
|
|||||||
@@ -17,12 +17,34 @@ class MedicalRelease < ApplicationRecord
|
|||||||
composed_of :person_address,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
mapping: [
|
mapping: [
|
||||||
%w(person_address_street1 street1),
|
%w[person_address_street1 street1],
|
||||||
%w(person_address_street2 street2),
|
%w[person_address_street2 street2],
|
||||||
%w(person_address_city city),
|
%w[person_address_city city],
|
||||||
%w(person_address_state state),
|
%w[person_address_state state],
|
||||||
%w(person_address_zip zip),
|
%w[person_address_zip zip],
|
||||||
%w(person_address_country country)
|
%w[person_address_country country]
|
||||||
|
]
|
||||||
|
|
||||||
|
composed_of :guardian_address,
|
||||||
|
class_name: 'Address',
|
||||||
|
mapping: [
|
||||||
|
%w[guardian_address_street1 street1],
|
||||||
|
%w[guardian_address_street2 street2],
|
||||||
|
%w[guardian_address_city city],
|
||||||
|
%w[guardian_address_state state],
|
||||||
|
%w[guardian_address_zip zip],
|
||||||
|
%w[guardian_address_country country]
|
||||||
|
]
|
||||||
|
|
||||||
|
composed_of :guardian_2_address,
|
||||||
|
class_name: 'Address',
|
||||||
|
mapping: [
|
||||||
|
%w[guardian_2_address_street1 street1],
|
||||||
|
%w[guardian_2_address_street2 street2],
|
||||||
|
%w[guardian_2_address_city city],
|
||||||
|
%w[guardian_2_address_state state],
|
||||||
|
%w[guardian_2_address_zip zip],
|
||||||
|
%w[guardian_2_address_country country]
|
||||||
]
|
]
|
||||||
|
|
||||||
def self.face_photo_acceptable_content_types
|
def self.face_photo_acceptable_content_types
|
||||||
@@ -32,6 +54,7 @@ class MedicalRelease < ApplicationRecord
|
|||||||
# These validations apply to all releases
|
# These validations apply to all releases
|
||||||
validates :person_first_name, :person_last_name, presence: true
|
validates :person_first_name, :person_last_name, presence: true
|
||||||
validates :person_email, email: true, allow_blank: true
|
validates :person_email, email: true, allow_blank: true
|
||||||
|
validate :valid_answers
|
||||||
|
|
||||||
acts_as_taggable_on :internal_tags, :tags
|
acts_as_taggable_on :internal_tags, :tags
|
||||||
|
|
||||||
@@ -76,4 +99,15 @@ class MedicalRelease < ApplicationRecord
|
|||||||
def contract_file_name
|
def contract_file_name
|
||||||
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def valid_answers
|
||||||
|
(1..ContractTemplate::NUMBER_OF_CUSTOM_FIELDS).each do |index|
|
||||||
|
if contract_template && contract_template["question_#{index}_text"].present? &&
|
||||||
|
public_send("question_#{index}_answer").blank?
|
||||||
|
errors.add("question_#{index}", I18n.t('medical_releases.custom_validation_errors.question_answer_is_required'))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -25,6 +25,11 @@
|
|||||||
<%= form.rich_text_area :guardian_clause %>
|
<%= form.rich_text_area :guardian_clause %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="signature_legal_text">
|
||||||
|
<%= form.form_group do %>
|
||||||
|
<%= form.rich_text_area :signature_legal_text %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= field_set_tag content_tag(:span, t(".custom_fields.heading"), class: "h6 text-muted text-uppercase"), id: "custom_fields", style: "display: none;" do %>
|
<%= field_set_tag content_tag(:span, t(".custom_fields.heading"), class: "h6 text-muted text-uppercase"), id: "custom_fields", style: "display: none;" do %>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form %>
|
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text.present? ? @contract_template.signature_legal_text : nil %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form %>
|
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, instruction: 'An Authorized Signatory' %>
|
<%= render "shared/signature_fields", form: form, instruction: 'An Authorized Signatory', signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, instruction: 'For Owner or Authorized Signatory' %>
|
<%= render "shared/signature_fields", form: form, instruction: 'For Owner or Authorized Signatory', signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
||||||
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_area "question_#{n}_answer", wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
<%= form.text_area "question_#{n}_answer", required: true, wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form %>
|
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form %>
|
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form %>
|
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -12,4 +12,8 @@
|
|||||||
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<% if local_assigns[:signature_legal_text] && signature_legal_text.present? %>
|
||||||
|
<div class="alert alert-warning font-weight-bold"><%= signature_legal_text %></div>
|
||||||
|
<% end %>
|
||||||
@@ -364,6 +364,7 @@ en:
|
|||||||
contract_template:
|
contract_template:
|
||||||
fee: Leave at $0.00 for no-fee
|
fee: Leave at $0.00 for no-fee
|
||||||
guardian_clause: Leave blank if not required for this contract
|
guardian_clause: Leave blank if not required for this contract
|
||||||
|
signature_legal_text: Leave blank if not required for this contract
|
||||||
task_request:
|
task_request:
|
||||||
time_allowed: Minimum of 2 hours, no partial hours allowed
|
time_allowed: Minimum of 2 hours, no partial hours allowed
|
||||||
video:
|
video:
|
||||||
@@ -772,6 +773,8 @@ en:
|
|||||||
update:
|
update:
|
||||||
notice: The material release has been updated
|
notice: The material release has been updated
|
||||||
medical_releases:
|
medical_releases:
|
||||||
|
custom_validation_errors:
|
||||||
|
question_answer_is_required: answer is required
|
||||||
destroy:
|
destroy:
|
||||||
alert: The medical release has been deleted
|
alert: The medical release has been deleted
|
||||||
index:
|
index:
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ es:
|
|||||||
contract_template:
|
contract_template:
|
||||||
fee: Leave at $0.00 for no-fee (ES)
|
fee: Leave at $0.00 for no-fee (ES)
|
||||||
guardian_clause: Leave blank if not required for this contract (ES)
|
guardian_clause: Leave blank if not required for this contract (ES)
|
||||||
|
signature_legal_text: Leave blank if not required for this contract (ES)
|
||||||
label:
|
label:
|
||||||
appearance_release:
|
appearance_release:
|
||||||
guardian_2_address_city: Guardian 2 city (ES)
|
guardian_2_address_city: Guardian 2 city (ES)
|
||||||
@@ -282,6 +283,9 @@ es:
|
|||||||
form:
|
form:
|
||||||
photos:
|
photos:
|
||||||
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
||||||
|
medical_releases:
|
||||||
|
custom_validation_errors:
|
||||||
|
question_answer_is_required: answer is required (ES)
|
||||||
public:
|
public:
|
||||||
appearance_releases:
|
appearance_releases:
|
||||||
create:
|
create:
|
||||||
|
|||||||
@@ -19,14 +19,29 @@ RSpec.describe Public::MedicalReleasesController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "displays validation errors" do
|
it "displays validation errors" do
|
||||||
contract_template = create(:contract_template, project: project)
|
contract_template = create(:contract_template,
|
||||||
|
project: project,
|
||||||
|
question_1_text: "Question 1",
|
||||||
|
question_2_text: "Question 2"
|
||||||
|
)
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
|
|
||||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, medical_release: { person_address_city: "Albuquerque" } }
|
post :create, params: {
|
||||||
|
account_id: user.primary_account.to_param,
|
||||||
|
project_id: project,
|
||||||
|
contract_template_id: contract_template,
|
||||||
|
medical_release: {
|
||||||
|
person_address_city: "Albuquerque",
|
||||||
|
question_2_answer: "Answer 2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
body = CGI.unescape_html(response.body)
|
body = CGI.unescape_html(response.body)
|
||||||
expect(body).to match /Person first name can't be blank/
|
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 /Person last name can't be blank/
|
||||||
expect(body).to match />can't be blank</
|
expect(body).to match />can't be blank</
|
||||||
|
expect(body).to match /Question 1 #{question_answer_validation_error}/
|
||||||
|
expect(body).not_to match /Question 2 #{question_answer_validation_error}/
|
||||||
end
|
end
|
||||||
|
|
||||||
it "responds with success " do
|
it "responds with success " do
|
||||||
@@ -68,4 +83,8 @@ RSpec.describe Public::MedicalReleasesController, type: :controller do
|
|||||||
|
|
||||||
{ signature_base64: data_uri }
|
{ signature_base64: data_uri }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def question_answer_validation_error
|
||||||
|
t 'medical_releases.custom_validation_errors.question_answer_is_required'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -35,6 +35,24 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
expect(page).to have_content(create_contract_template_success_message)
|
expect(page).to have_content(create_contract_template_success_message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario 'creating new release template, all release types accept signature legal text' do
|
||||||
|
all_release_types = ['Acquired Media', 'Appearance', 'Location', 'Material', 'Medical', 'Misc', 'Talent']
|
||||||
|
|
||||||
|
all_release_types.each do |release_type|
|
||||||
|
visit new_project_contract_template_path(project)
|
||||||
|
|
||||||
|
dropdown_selection = "#{release_type} Release"
|
||||||
|
select dropdown_selection, from: 'Release type'
|
||||||
|
|
||||||
|
fill_in 'Name', with: "My #{release_type} template"
|
||||||
|
fill_in_trix signature_legal_text_field, with: 'LL'
|
||||||
|
|
||||||
|
expect do
|
||||||
|
click_on 'Create Release Template'
|
||||||
|
end.to change(ContractTemplate, :count).by(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario 'medical release template has a guardian clause field' do
|
scenario 'medical release template has a guardian clause field' do
|
||||||
visit new_project_contract_template_path(project)
|
visit new_project_contract_template_path(project)
|
||||||
|
|
||||||
@@ -310,6 +328,10 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
'contract_template_guardian_clause_trix_input_contract_template'
|
'contract_template_guardian_clause_trix_input_contract_template'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def signature_legal_text_field
|
||||||
|
'contract_template_signature_legal_text'
|
||||||
|
end
|
||||||
|
|
||||||
def create_contract_template_success_message
|
def create_contract_template_success_message
|
||||||
'The release template has been created'
|
'The release template has been created'
|
||||||
end
|
end
|
||||||
@@ -329,4 +351,8 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
def create_release_template
|
def create_release_template
|
||||||
t 'contract_templates.splash.actions.create_template'
|
t 'contract_templates.splash.actions.create_template'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def signature_legal_text_trix_field
|
||||||
|
'Signature legal text'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -41,6 +41,13 @@ feature "User managing acquired_media releases" do
|
|||||||
expect(AcquiredMediaRelease.last.categories).to include("Still Photograph")
|
expect(AcquiredMediaRelease.last.categories).to include("Still Photograph")
|
||||||
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_acquired_media_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in" do
|
context "when signed in" do
|
||||||
@@ -357,4 +364,8 @@ feature "User managing acquired_media releases" do
|
|||||||
def destroy_release_alert
|
def destroy_release_alert
|
||||||
t "acquired_media_releases.destroy.alert"
|
t "acquired_media_releases.destroy.alert"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -137,6 +137,13 @@ feature 'User managing appearance releases' do
|
|||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
expect(AppearanceRelease.last.guardian_2_first_name).to eq 'Second'
|
expect(AppearanceRelease.last.guardian_2_first_name).to eq 'Second'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when signed in' do
|
context 'when signed in' do
|
||||||
@@ -706,4 +713,8 @@ feature 'User managing appearance releases' do
|
|||||||
def guardian_2_photo_heading
|
def guardian_2_photo_heading
|
||||||
t 'appearance_releases.form.photos.guardian_2_photo.heading'
|
t 'appearance_releases.form.photos.guardian_2_photo.heading'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -71,6 +71,13 @@ feature "User managing location releases" do
|
|||||||
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
||||||
expect(LocationRelease.last.photos.attached?).to eq true
|
expect(LocationRelease.last.photos.attached?).to eq true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_location_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in" do
|
context "when signed in" do
|
||||||
@@ -375,4 +382,8 @@ feature "User managing location releases" do
|
|||||||
select "Other", from: "Restriction"
|
select "Other", from: "Restriction"
|
||||||
fill_in "Describe other restrictions", with: "Test"
|
fill_in "Describe other restrictions", with: "Test"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -84,6 +84,13 @@ feature "User managing material releases" do
|
|||||||
click_button submit_release_button
|
click_button submit_release_button
|
||||||
expect(page).to have_content success_submit_message
|
expect(page).to have_content success_submit_message
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_material_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in" do
|
context "when signed in" do
|
||||||
@@ -382,4 +389,8 @@ feature "User managing material releases" do
|
|||||||
click_button submit_release_button
|
click_button submit_release_button
|
||||||
expect(page).not_to have_content success_submit_message
|
expect(page).not_to have_content success_submit_message
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -131,6 +131,50 @@ feature "User managing medical releases" do
|
|||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
expect(MedicalRelease.last.guardian_2_first_name).to eq 'Second'
|
expect(MedicalRelease.last.guardian_2_first_name).to eq 'Second'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario 'when signing release, question answers are required', js: true do
|
||||||
|
project = create(:project, members: current_user, account: current_user.primary_account)
|
||||||
|
contract_template = create(:contract_template,
|
||||||
|
project: project,
|
||||||
|
question_1_text: 'Question 1',
|
||||||
|
question_2_text: 'Question 2'
|
||||||
|
)
|
||||||
|
|
||||||
|
visit new_account_project_contract_template_medical_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
|
draw_signature file_fixture("signature.png"), "medical_release_signature_base64"
|
||||||
|
|
||||||
|
expect do
|
||||||
|
click_button submit_release_button
|
||||||
|
end.to change(MedicalRelease, :count).by(0)
|
||||||
|
expect(page).not_to have_content(successful_submission_message)
|
||||||
|
|
||||||
|
fill_in answer_field_for_question(1), with: 'Answer 1'
|
||||||
|
draw_signature file_fixture("signature.png"), "medical_release_signature_base64"
|
||||||
|
|
||||||
|
expect do
|
||||||
|
click_button submit_release_button
|
||||||
|
end.to change(MedicalRelease, :count).by(0)
|
||||||
|
expect(page).not_to have_content(successful_submission_message)
|
||||||
|
|
||||||
|
fill_in answer_field_for_question(2), with: 'Answer 2'
|
||||||
|
draw_signature file_fixture("signature.png"), "medical_release_signature_base64"
|
||||||
|
|
||||||
|
expect do
|
||||||
|
click_button submit_release_button
|
||||||
|
end.to change(MedicalRelease, :count).by(1)
|
||||||
|
expect(page).to have_content(successful_submission_message)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_medical_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in as account manager" do
|
context "when signed in as account manager" do
|
||||||
@@ -406,4 +450,12 @@ feature "User managing medical releases" do
|
|||||||
def guardian_2_information_heading
|
def guardian_2_information_heading
|
||||||
t 'public.medical_releases.new.guardian_2_info.heading'
|
t 'public.medical_releases.new.guardian_2_info.heading'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def answer_field_for_question(number)
|
||||||
|
"medical_release[question_#{number}_answer]"
|
||||||
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -48,6 +48,13 @@ feature "User managing misc releases" do
|
|||||||
expect(field).to be_visible
|
expect(field).to be_visible
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_misc_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in as account manager" do
|
context "when signed in as account manager" do
|
||||||
@@ -199,4 +206,8 @@ feature "User managing misc releases" do
|
|||||||
def person_is_minor_checkbox
|
def person_is_minor_checkbox
|
||||||
'misc_release_minor'
|
'misc_release_minor'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -126,6 +126,13 @@ feature "User managing talent releases" do
|
|||||||
expect(TalentRelease.last.guardian_2_photo.attached?).to eq true
|
expect(TalentRelease.last.guardian_2_photo.attached?).to eq true
|
||||||
expect(TalentRelease.last.guardian_2_name).to eq "Second Guardian"
|
expect(TalentRelease.last.guardian_2_name).to eq "Second Guardian"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
||||||
|
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
||||||
|
visit new_account_project_contract_template_talent_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
expect(page).to have_content dummy_signature_legal_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in" do
|
context "when signed in" do
|
||||||
@@ -555,4 +562,8 @@ feature "User managing talent releases" do
|
|||||||
fill_in guardian_address_state_field, with: "NY"
|
fill_in guardian_address_state_field, with: "NY"
|
||||||
fill_in guardian_address_zip_field, with: '1000'
|
fill_in guardian_address_zip_field, with: '1000'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dummy_signature_legal_text
|
||||||
|
'Some signature legal language'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -22,6 +22,23 @@ RSpec.describe MedicalRelease do
|
|||||||
context "for non-native releases" do
|
context "for non-native releases" do
|
||||||
it { is_expected.to validate_attachment_of(:contract).on(:non_native) }
|
it { is_expected.to validate_attachment_of(:contract).on(:non_native) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "question answers" do
|
||||||
|
let(:project) { create(:project) }
|
||||||
|
let(:contract_template) { create(:contract_template, project: project, question_1_text: 'Question 1') }
|
||||||
|
|
||||||
|
it "returns validation errors if answers are missing" do
|
||||||
|
expect do
|
||||||
|
create(:medical_release, contract_template: contract_template)
|
||||||
|
end.to raise_exception ActiveRecord::RecordInvalid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates release if answers are present" do
|
||||||
|
expect do
|
||||||
|
create(:medical_release, contract_template: contract_template, question_1_answer: 'Answer 1')
|
||||||
|
end.to change(MedicalRelease, :count).by(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "attachments" do
|
describe "attachments" do
|
||||||
|
|||||||
Reference in New Issue
Block a user