From 61e976ebd29f81725c0aa4555d1eb2838db16fb9 Mon Sep 17 00:00:00 2001 From: Bilal Date: Thu, 2 Jul 2020 19:09:54 +0200 Subject: [PATCH] add specs --- .../user_managing_appearance_releases_spec.rb | 18 ++++++++++++++ .../user_managing_medical_releases_spec.rb | 18 ++++++++++++++ .../user_managing_misc_releases_spec.rb | 24 ++++++++++++++++++- .../user_managing_talent_releases_spec.rb | 18 ++++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) diff --git a/spec/features/user_managing_appearance_releases_spec.rb b/spec/features/user_managing_appearance_releases_spec.rb index 9335a0f..9b974d0 100644 --- a/spec/features/user_managing_appearance_releases_spec.rb +++ b/spec/features/user_managing_appearance_releases_spec.rb @@ -30,6 +30,24 @@ feature 'User managing appearance releases' do expect(page).to have_content(successful_submission_message) 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 allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true)) diff --git a/spec/features/user_managing_medical_releases_spec.rb b/spec/features/user_managing_medical_releases_spec.rb index 59510fb..28186df 100644 --- a/spec/features/user_managing_medical_releases_spec.rb +++ b/spec/features/user_managing_medical_releases_spec.rb @@ -28,6 +28,24 @@ feature "User managing medical releases" do expect(page).to have_content(successful_submission_message) 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 allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true)) diff --git a/spec/features/user_managing_misc_releases_spec.rb b/spec/features/user_managing_misc_releases_spec.rb index 00e8528..2b13e05 100644 --- a/spec/features/user_managing_misc_releases_spec.rb +++ b/spec/features/user_managing_misc_releases_spec.rb @@ -7,7 +7,7 @@ feature "User managing misc releases" do context 'when signed out' do scenario 'creating a release for an adult', js: true do 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", project: project) @@ -30,6 +30,24 @@ feature "User managing misc releases" do expect(page).to have_content(successful_submission_message) 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 context "when signed in as account manager" do @@ -177,4 +195,8 @@ feature "User managing misc releases" do def successful_submission_message "Your release was successfully submitted. Thank you." end + + def person_is_minor_checkbox + 'misc_release_minor' + end end diff --git a/spec/features/user_managing_talent_releases_spec.rb b/spec/features/user_managing_talent_releases_spec.rb index 6362a58..5cafffb 100644 --- a/spec/features/user_managing_talent_releases_spec.rb +++ b/spec/features/user_managing_talent_releases_spec.rb @@ -32,6 +32,24 @@ feature "User managing talent releases" do expect(page).to have_content("Your release was successfully submitted. Thank you.") 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 contract_template = create(:contract_template, project: project)