Compare commits
3 Commits
master
...
add-requir
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aea6aaea51 | ||
|
|
61e976ebd2 | ||
|
|
4266e9e726 |
13
app/assets/javascripts/update_required_status.js
Normal file
13
app/assets/javascripts/update_required_status.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
$(document).on("turbolinks:load", function() {
|
||||||
|
$("[data-behavior=update-required-status]").click(function(e) {
|
||||||
|
const required = !!($(this)[0] && $(this)[0].checked);
|
||||||
|
|
||||||
|
|
||||||
|
$("[data-required-tag=guardian]").each(function(index, element) {
|
||||||
|
const labelForField = element.previousSibling;
|
||||||
|
|
||||||
|
element.required = required;
|
||||||
|
labelForField.classList.add("required");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -72,12 +72,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@appearance_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@appearance_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %>
|
<%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor? %>
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor?, data: { required_tag: "guardian" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -59,14 +59,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@medical_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@medical_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6" %>
|
<%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor?, data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6" %>
|
|
||||||
</div>
|
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor? %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -56,14 +56,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@misc_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@misc_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
|
||||||
</div>
|
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -46,12 +46,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@talent_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@talent_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %>
|
<%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
<%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<% field_name_prefix = subject.present? ? "#{subject}_" : "" %>
|
<% field_name_prefix = subject.present? ? "#{subject}_" : "" %>
|
||||||
<% required = required || false %>
|
<% required = required || false %>
|
||||||
|
<% data = data || nil %>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6" %>
|
<%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6", data: data %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
|
<%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6" %>
|
<%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6", data: data %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3" %>
|
<%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3", data: data %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3" %>
|
<%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3", data: data %>
|
||||||
</div>
|
</div>
|
||||||
<%= form.form_group "#{field_name_prefix}address_country" do %>
|
<%= form.form_group "#{field_name_prefix}address_country" do %>
|
||||||
<%= form.label "#{field_name_prefix}address_country" %>
|
<%= form.label "#{field_name_prefix}address_country" %>
|
||||||
|
|||||||
@@ -30,6 +30,24 @@ feature 'User managing appearance releases' do
|
|||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release for a minor - guardian fields are required when minor checkbox is checked", js: true do
|
||||||
|
contract_template = create(:contract_template, project: project)
|
||||||
|
|
||||||
|
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'false'
|
||||||
|
expect(field).not_to be_visible
|
||||||
|
end
|
||||||
|
|
||||||
|
page.check person_is_minor_checkbox
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'true'
|
||||||
|
expect(field).to be_visible
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario 'creating a release for a minor', js: true do
|
scenario 'creating a release for a minor', js: true do
|
||||||
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
||||||
|
|
||||||
@@ -50,6 +68,7 @@ feature 'User managing appearance releases' do
|
|||||||
fill_in guardian_first_name_field, with: 'Guardian'
|
fill_in guardian_first_name_field, with: 'Guardian'
|
||||||
fill_in guardian_last_name_field, with: 'Name'
|
fill_in guardian_last_name_field, with: 'Name'
|
||||||
fill_in guardian_phone_field, with: '001101'
|
fill_in guardian_phone_field, with: '001101'
|
||||||
|
fill_in guardian_email_field, with: 'valid@email.com'
|
||||||
fill_in person_first_name_field, with: 'Jane'
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
fill_in person_last_name_field, with: 'Doe'
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
fill_in_person_address_fields
|
fill_in_person_address_fields
|
||||||
@@ -60,11 +79,6 @@ feature 'User managing appearance releases' do
|
|||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'invalid@email'
|
|
||||||
click_button submit_release_button
|
|
||||||
expect(page).to have_content('Guardian email is not an email')
|
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'valid@email.com'
|
|
||||||
fill_in_guardian_address_fields
|
fill_in_guardian_address_fields
|
||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
@@ -99,6 +113,7 @@ feature 'User managing appearance releases' do
|
|||||||
fill_in guardian_first_name_field, with: 'Guardian'
|
fill_in guardian_first_name_field, with: 'Guardian'
|
||||||
fill_in guardian_last_name_field, with: 'Name'
|
fill_in guardian_last_name_field, with: 'Name'
|
||||||
fill_in guardian_phone_field, with: '001101'
|
fill_in guardian_phone_field, with: '001101'
|
||||||
|
fill_in guardian_email_field, with: 'valid@email.com'
|
||||||
fill_in person_first_name_field, with: 'Jane'
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
fill_in person_last_name_field, with: 'Doe'
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
fill_in_person_address_fields
|
fill_in_person_address_fields
|
||||||
@@ -109,11 +124,6 @@ feature 'User managing appearance releases' do
|
|||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'invalid@email'
|
|
||||||
click_button submit_release_button
|
|
||||||
expect(page).to have_content('Guardian email is not an email')
|
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'valid@email.com'
|
|
||||||
fill_in_guardian_address_fields
|
fill_in_guardian_address_fields
|
||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
|
|||||||
@@ -28,6 +28,24 @@ feature "User managing medical releases" do
|
|||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release for a minor - guardian fields are required when minor checkbox is checked", js: true do
|
||||||
|
contract_template = create(:contract_template, project: project)
|
||||||
|
|
||||||
|
visit new_account_project_contract_template_medical_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'false'
|
||||||
|
expect(field).not_to be_visible
|
||||||
|
end
|
||||||
|
|
||||||
|
page.check person_is_minor_checkbox
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'true'
|
||||||
|
expect(field).to be_visible
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario 'creating a release for a minor', js: true do
|
scenario 'creating a release for a minor', js: true do
|
||||||
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
||||||
|
|
||||||
@@ -47,6 +65,7 @@ feature "User managing medical releases" do
|
|||||||
fill_in guardian_first_name_field, with: 'Guardian'
|
fill_in guardian_first_name_field, with: 'Guardian'
|
||||||
fill_in guardian_last_name_field, with: 'Name'
|
fill_in guardian_last_name_field, with: 'Name'
|
||||||
fill_in guardian_phone_field, with: '001101'
|
fill_in guardian_phone_field, with: '001101'
|
||||||
|
fill_in guardian_email_field, with: "valid@email.com"
|
||||||
fill_in person_first_name_field, with: 'Jane'
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
fill_in person_last_name_field, with: 'Doe'
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
fill_in_person_address_fields
|
fill_in_person_address_fields
|
||||||
@@ -56,11 +75,6 @@ feature "User managing medical releases" do
|
|||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'invalid@email'
|
|
||||||
click_button submit_release_button
|
|
||||||
expect(page).to have_content email_validation_error_for('Guardian')
|
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'valid@email.com'
|
|
||||||
fill_in_guardian_address_fields
|
fill_in_guardian_address_fields
|
||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
||||||
@@ -94,6 +108,7 @@ feature "User managing medical releases" do
|
|||||||
fill_in guardian_first_name_field, with: 'Guardian'
|
fill_in guardian_first_name_field, with: 'Guardian'
|
||||||
fill_in guardian_last_name_field, with: 'Name'
|
fill_in guardian_last_name_field, with: 'Name'
|
||||||
fill_in guardian_phone_field, with: '001101'
|
fill_in guardian_phone_field, with: '001101'
|
||||||
|
fill_in guardian_email_field, with: "valid@email.com"
|
||||||
fill_in person_first_name_field, with: 'Jane'
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
fill_in person_last_name_field, with: 'Doe'
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
fill_in_person_address_fields
|
fill_in_person_address_fields
|
||||||
@@ -103,11 +118,6 @@ feature "User managing medical releases" do
|
|||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'invalid@email'
|
|
||||||
click_button submit_release_button
|
|
||||||
expect(page).to have_content email_validation_error_for('Guardian')
|
|
||||||
|
|
||||||
fill_in guardian_email_field, with: 'valid@email.com'
|
|
||||||
fill_in_guardian_address_fields
|
fill_in_guardian_address_fields
|
||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ feature "User managing misc releases" do
|
|||||||
context 'when signed out' do
|
context 'when signed out' do
|
||||||
scenario 'creating a release for an adult', js: true do
|
scenario 'creating a release for an adult', js: true do
|
||||||
project = create(:project, members: current_user, account: current_user.primary_account)
|
project = create(:project, members: current_user, account: current_user.primary_account)
|
||||||
contract_template = create(:misc_release_contract_template,
|
contract_template = create(:misc_release_contract_template,
|
||||||
question_1_text: "Question 1",
|
question_1_text: "Question 1",
|
||||||
project: project)
|
project: project)
|
||||||
|
|
||||||
@@ -30,6 +30,24 @@ feature "User managing misc releases" do
|
|||||||
|
|
||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release for a minor - guardian fields are required when minor checkbox is checked", js: true do
|
||||||
|
contract_template = create(:contract_template, project: project)
|
||||||
|
|
||||||
|
visit new_account_project_contract_template_misc_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'false'
|
||||||
|
expect(field).not_to be_visible
|
||||||
|
end
|
||||||
|
|
||||||
|
page.check person_is_minor_checkbox
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'true'
|
||||||
|
expect(field).to be_visible
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in as account manager" do
|
context "when signed in as account manager" do
|
||||||
@@ -177,4 +195,8 @@ feature "User managing misc releases" do
|
|||||||
def successful_submission_message
|
def successful_submission_message
|
||||||
"Your release was successfully submitted. Thank you."
|
"Your release was successfully submitted. Thank you."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def person_is_minor_checkbox
|
||||||
|
'misc_release_minor'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -32,6 +32,24 @@ feature "User managing talent 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.")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "creating a release for a minor - guardian fields are required when minor checkbox is checked", js: true do
|
||||||
|
contract_template = create(:contract_template, project: project)
|
||||||
|
|
||||||
|
visit new_account_project_contract_template_talent_release_path(project.account, project, contract_template)
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'false'
|
||||||
|
expect(field).not_to be_visible
|
||||||
|
end
|
||||||
|
|
||||||
|
page.check person_is_minor_checkbox
|
||||||
|
|
||||||
|
all('input[data-required-tag="guardian"]').each do |field|
|
||||||
|
expect(field['required']).to eq 'true'
|
||||||
|
expect(field).to be_visible
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario "creating a release for a minor", js: true do
|
scenario "creating a release for a minor", js: true do
|
||||||
contract_template = create(:contract_template, project: project)
|
contract_template = create(:contract_template, project: project)
|
||||||
|
|
||||||
@@ -48,6 +66,8 @@ feature "User managing talent releases" do
|
|||||||
fill_in guardian_first_name_field, with: "Guardian"
|
fill_in guardian_first_name_field, with: "Guardian"
|
||||||
fill_in guardian_last_name_field, with: "Name"
|
fill_in guardian_last_name_field, with: "Name"
|
||||||
fill_in guardian_phone_field, with: "001101"
|
fill_in guardian_phone_field, with: "001101"
|
||||||
|
fill_in guardian_email_field, with: "valid@email.com"
|
||||||
|
fill_in_guardian_address_fields
|
||||||
fill_in person_first_name_field, with: "Jane"
|
fill_in person_first_name_field, with: "Jane"
|
||||||
fill_in person_last_name_field, with: "Doe"
|
fill_in person_last_name_field, with: "Doe"
|
||||||
fill_in person_address_field, with: "123 Test Lane, New York, NY 10000"
|
fill_in person_address_field, with: "123 Test Lane, New York, NY 10000"
|
||||||
@@ -88,6 +108,9 @@ feature "User managing talent releases" do
|
|||||||
fill_in guardian_first_name_field, with: "Guardian"
|
fill_in guardian_first_name_field, with: "Guardian"
|
||||||
fill_in guardian_last_name_field, with: "Name"
|
fill_in guardian_last_name_field, with: "Name"
|
||||||
fill_in guardian_phone_field, with: "001101"
|
fill_in guardian_phone_field, with: "001101"
|
||||||
|
fill_in guardian_email_field, with: "valid@email.com"
|
||||||
|
|
||||||
|
fill_in_guardian_address_fields
|
||||||
|
|
||||||
fill_in guardian_2_first_name_field, with: "Second"
|
fill_in guardian_2_first_name_field, with: "Second"
|
||||||
fill_in guardian_2_last_name_field, with: "Guardian"
|
fill_in guardian_2_last_name_field, with: "Guardian"
|
||||||
@@ -387,10 +410,30 @@ feature "User managing talent releases" do
|
|||||||
"talent_release[guardian_2_last_name]"
|
"talent_release[guardian_2_last_name]"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def guardian_address_street1_field
|
||||||
|
"talent_release[guardian_address_street1]"
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_address_city_field
|
||||||
|
"talent_release[guardian_address_city]"
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_address_state_field
|
||||||
|
"talent_release[guardian_address_state]"
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_address_zip_field
|
||||||
|
"talent_release[guardian_address_zip]"
|
||||||
|
end
|
||||||
|
|
||||||
def guardian_phone_field
|
def guardian_phone_field
|
||||||
"Guardian phone"
|
"Guardian phone"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def guardian_email_field
|
||||||
|
"talent_release[guardian_email]"
|
||||||
|
end
|
||||||
|
|
||||||
def guardian_photo_field
|
def guardian_photo_field
|
||||||
"talent_release[guardian_photo]"
|
"talent_release[guardian_photo]"
|
||||||
end
|
end
|
||||||
@@ -505,4 +548,11 @@ feature "User managing talent releases" do
|
|||||||
def contract_field
|
def contract_field
|
||||||
"talent_release[contract]"
|
"talent_release[contract]"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def fill_in_guardian_address_fields
|
||||||
|
fill_in guardian_address_street1_field, with: "124 Test Lane"
|
||||||
|
fill_in guardian_address_city_field, with: "New York"
|
||||||
|
fill_in guardian_address_state_field, with: "NY"
|
||||||
|
fill_in guardian_address_zip_field, with: '1000'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user