Upstream sync

This commit is contained in:
Senad Uka
2020-06-25 08:46:11 +02:00
parent 319cd89b29
commit 290dbfa48b
17 changed files with 855 additions and 75 deletions

View File

@@ -28,6 +28,18 @@ RSpec.feature 'User manages contract templates', type: :feature do
expect(page).to have_content('The release template has been created')
end
scenario 'medical release template has a guardian clause field' do
visit new_project_contract_template_path(project)
fill_in 'Name', with: 'My Release Template'
select 'Medical Release', from: 'Release type'
fill_hidden guardian_clause_field, with: 'Guardian clause text'
click_on 'Create Release Template'
expect(page).to have_content('The release template has been created')
expect(ContractTemplate.last.guardian_clause.body.to_s).to match /Guardian clause text/
end
scenario 'preview new talent release template without guardian clause' do
visit new_project_contract_template_path(project)
select 'Talent Release', from: 'Release type'

View File

@@ -20,6 +20,17 @@ feature "User managing acquired_media releases" do
by "filling out the form" do
fill_in acquired_media_name_field, with: "Jane Doe"
acquired_media_category_fields
fill_in acquried_media_description_field, with: "Description"
fill_in acquried_media_owner_first_name, with: "Jane"
fill_in acquried_media_owner_last_name, with: "Doe"
fill_in acquired_media_person_title, with: "Ms."
fill_in acquired_media_person_phone, with: "555-5555-5555"
fill_in acquired_media_person_email, with: "person@example.com"
fill_in acquired_media_person_fax, with: "FAX"
fill_in acquired_media_person_address_street_1, with: "Street 1"
fill_in acquired_media_person_address_city, with: "City"
fill_in acquired_media_person_address_state, with: "State"
fill_in acquired_media_release_person_address_zip, with: "ZIP"
draw_signature file_fixture("signature.png"), "acquired_media_release_signature_base64"
end
@@ -220,6 +231,50 @@ feature "User managing acquired_media releases" do
"acquired_media_release[name]"
end
def acquried_media_description_field
"acquired_media_release[description]"
end
def acquried_media_owner_first_name
"acquired_media_release[person_first_name]"
end
def acquried_media_owner_last_name
"acquired_media_release[person_last_name]"
end
def acquired_media_person_title
"acquired_media_release[person_title]"
end
def acquired_media_person_phone
"acquired_media_release[person_phone]"
end
def acquired_media_person_email
"acquired_media_release[person_email]"
end
def acquired_media_person_fax
"acquired_media_release[person_fax]"
end
def acquired_media_person_address_street_1
"acquired_media_release[person_address_street1]"
end
def acquired_media_person_address_city
"acquired_media_release[person_address_city]"
end
def acquired_media_person_address_state
"acquired_media_release[person_address_state]"
end
def acquired_media_release_person_address_zip
"acquired_media_release[person_address_zip]"
end
def acquired_media_category_fields
find(:css, "#acquired_media_release_categories_video_footage").set(true)
find(:css, "#acquired_media_release_categories_still_photograph").set(true)

View File

@@ -19,11 +19,20 @@ feature "User managing location releases" do
by "filling out the form" do
fill_in location_name_field, with: "Benny's Burritos"
fill_in location_address_street_1, with: "Location's street address"
fill_in location_address_city, with: "Location's city"
fill_in location_address_state, with: "Location's state"
fill_in location_address_zip, with: "Location's zip"
fill_in person_first_name_field, with: "Jane"
fill_in person_last_name_field, with: "Doe"
fill_in person_phone_field, with: "555-555-5555"
fill_in person_email_field, with: "jane.doe@test.com"
fill_in person_company_field, with: "BIG"
fill_in person_title_field, with: "Ms."
fill_in person_address_street1_field, with: "100 Broadway"
fill_in person_address_city, with: "Person's City"
fill_in person_address_state, with: "Person's State"
fill_in person_address_zip, with: "Person's Zip"
fill_in filming_hours_field, with: "04:00 - 22:00"
draw_signature file_fixture("signature.png"), "location_release_signature_base64"
end
@@ -39,11 +48,20 @@ feature "User managing location releases" do
visit new_account_project_contract_template_location_release_path(project.account, project, contract_template)
fill_in location_name_field, with: "Benny's Burritos"
fill_in location_address_street_1, with: "Location's street address"
fill_in location_address_city, with: "Location's city"
fill_in location_address_state, with: "Location's state"
fill_in location_address_zip, with: "Location's zip"
fill_in person_first_name_field, with: "Jane"
fill_in person_last_name_field, with: "Doe"
fill_in person_phone_field, with: "555-555-5555"
fill_in person_email_field, with: "jane.doe@test.com"
fill_in person_company_field, with: "BIG"
fill_in person_title_field, with: "Ms."
fill_in person_address_street1_field, with: "100 Broadway"
fill_in person_address_city, with: "Person's City"
fill_in person_address_state, with: "Person's State"
fill_in person_address_zip, with: "Person's Zip"
fill_in filming_hours_field, with: "04:00 - 22:00"
draw_signature file_fixture("signature.png"), "location_release_signature_base64"
@@ -235,6 +253,22 @@ feature "User managing location releases" do
"location_release[name]"
end
def location_address_street_1
"location_release[address_street1]"
end
def location_address_city
"location_release[address_city]"
end
def location_address_state
"location_release[address_state]"
end
def location_address_zip
"location_release[address_zip]"
end
def contract_field
"location_release[contract]"
end
@@ -247,18 +281,38 @@ feature "User managing location releases" do
"location_release[person_last_name]"
end
def person_email_field
"location_release[person_email]"
end
def person_address_street1_field
"location_release[person_address_street1]"
end
def person_address_city
"location_release[person_address_city]"
end
def person_address_state
"location_release[person_address_state]"
end
def person_address_zip
"location_release[person_address_zip]"
end
def person_phone_field
"location_release[person_phone]"
end
def person_email_field
"location_release[person_email]"
end
def person_company_field
"location_release[person_company]"
end
def person_title_field
"location_release[person_title]"
end
def filming_hours_field
"location_release[filming_hours]"
end

View File

@@ -17,16 +17,12 @@ feature "User managing material releases" do
visit new_account_project_contract_template_material_release_path(project.account, project, contract_template)
by "filling out the form" do
fill_in material_name_field, with: "Pepsi Logo"
fill_in person_first_name_field, with: "Jane"
fill_in person_last_name_field, with: "Doe"
draw_signature file_fixture("signature.png"), "material_release_signature_base64"
end
fill_all_fields
draw_signature file_fixture("signature.png"), "material_release_signature_base64"
click_button submit_release_button
expect(page).to have_content("Your release was successfully submitted. Thank you.")
expect(page).to have_content success_submit_message
end
scenario "creating a release with photos", js: true do
@@ -34,17 +30,60 @@ feature "User managing material releases" do
visit new_account_project_contract_template_material_release_path(project.account, project, contract_template)
fill_in material_name_field, with: "Pepsi Logo"
fill_in person_first_name_field, with: "Jane"
fill_in person_last_name_field, with: "Doe"
fill_all_fields
draw_signature file_fixture("signature.png"), "material_release_signature_base64"
drop_file Rails.root.join(file_fixture("material_photo.png")), type: :dropzone
click_button submit_release_button
expect(page).to have_content("Your release was successfully submitted. Thank you.")
expect(page).to have_content success_submit_message
expect(MaterialRelease.last.photos.attached?).to eq true
end
scenario "creating release is possible only after filling all fields", js: true do
contract_template = create(:contract_template, project: project)
visit new_account_project_contract_template_material_release_path(project.account, project, contract_template)
fill_in material_name_field, with: "Pepsi Logo"
expect_failed_client_side_validation
fill_in material_description_field, with: "Description text"
expect_failed_client_side_validation
fill_in person_first_name_field, with: "Jane"
expect_failed_client_side_validation
fill_in person_last_name_field, with: "Doe"
expect_failed_client_side_validation
fill_in person_phone_field, with: "2229929229"
expect_failed_client_side_validation
fill_in person_email_field, with: "mail@mail.com"
expect_failed_client_side_validation
fill_in person_company_field, with: "Company"
expect_failed_client_side_validation
fill_in person_title_field, with: "Mr."
expect_failed_client_side_validation
fill_in person_address_street1_field, with: "Street 1 address"
expect_failed_client_side_validation
fill_in person_city_field, with: "City"
expect_failed_client_side_validation
fill_in person_state_field, with: "State"
expect_failed_client_side_validation
fill_in person_zip_field, with: "ZIP"
draw_signature file_fixture("signature.png"), "material_release_signature_base64"
click_button submit_release_button
expect(page).to have_content success_submit_message
end
end
context "when signed in" do
@@ -216,6 +255,10 @@ feature "User managing material releases" do
"material_release[name]"
end
def material_description_field
"material_release[description]"
end
def person_first_name_field
"material_release[person_first_name]"
end
@@ -224,6 +267,38 @@ feature "User managing material releases" do
"material_release[person_last_name]"
end
def person_phone_field
"material_release[person_phone]"
end
def person_email_field
"material_release[person_email]"
end
def person_company_field
"material_release[person_company]"
end
def person_title_field
"material_release[person_title]"
end
def person_address_street1_field
"material_release[person_address_street1]"
end
def person_city_field
"material_release[person_address_city]"
end
def person_state_field
"material_release[person_address_state]"
end
def person_zip_field
"material_release[person_address_zip]"
end
def have_photo(filename)
have_selector("img[src*='#{filename}']")
end
@@ -282,4 +357,29 @@ feature "User managing material releases" do
select "Other", from: "Restriction"
fill_in "Describe other restrictions", with: "Test"
end
def fill_all_fields
fill_in material_name_field, with: "Pepsi Logo"
fill_in material_description_field, with: "Description text"
fill_in person_first_name_field, with: "Jane"
fill_in person_last_name_field, with: "Doe"
fill_in person_phone_field, with: "2229929229"
fill_in person_email_field, with: "mail@mail.com"
fill_in person_company_field, with: "Company"
fill_in person_title_field, with: "Mr."
fill_in person_address_street1_field, with: "Street 1 address"
fill_in person_city_field, with: "City"
fill_in person_state_field, with: "State"
fill_in person_zip_field, with: "ZIP"
end
def success_submit_message
'Your release was successfully submitted. Thank you.'
end
def expect_failed_client_side_validation
draw_signature file_fixture("signature.png"), "material_release_signature_base64"
click_button submit_release_button
expect(page).not_to have_content success_submit_message
end
end

View File

@@ -4,6 +4,125 @@ feature "User managing medical releases" do
let(:current_user) { create(:user) }
let(:project) { create(:project, members: current_user, account: current_user.primary_account) }
context "when signed out" do
scenario 'creating a release for an adult', js: true do
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
project = create(:project, members: current_user, account: current_user.primary_account)
contract_template = create(:contract_template, project: project)
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'
fill_in_person_address_fields
fill_in person_phone_field, with: '555-555-5555'
fill_in person_email_field, with: 'jane.doe@test.com'
drop_file Rails.root.join(file_fixture("person_photo.png")), type: :dropzone
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 for a minor', js: true do
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
project = create(:project, members: current_user, account: current_user.primary_account)
contract_template = create(:contract_template, project: project)
visit new_account_project_contract_template_medical_release_path(project.account, project, contract_template)
expect(page).not_to have_content guardian_information_heading.upcase
expect(page).not_to have_content guardian_photo_heading.upcase
page.check person_is_minor_checkbox
expect(page).to have_content guardian_information_heading.upcase
expect(page).to have_content guardian_photo_heading.upcase
expect(page).to have_content guardian_email_field.titleize
fill_in guardian_first_name_field, with: 'Guardian'
fill_in guardian_last_name_field, with: 'Name'
fill_in guardian_phone_field, with: '001101'
fill_in person_first_name_field, with: 'Jane'
fill_in person_last_name_field, with: 'Doe'
fill_in_person_address_fields
fill_in person_phone_field, with: '555-555-5555'
fill_in person_email_field, with: 'jane.doe@test.com'
drop_file Rails.root.join(file_fixture("person_photo.png")), type: :dropzone
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
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
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
click_button submit_release_button
expect(page).to have_content(successful_submission_message)
end
scenario 'creating a release for a minor with two guardians', js: true do
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
project = create(:project, members: current_user, account: current_user.primary_account)
contract_template = create(:contract_template, project: project)
visit new_account_project_contract_template_medical_release_path(project.account, project, contract_template)
expect(page).not_to have_content guardian_2_information_heading.upcase
expect(page).not_to have_content guardian_2_photo_heading.upcase
page.check person_is_minor_checkbox
expect(page).to have_content guardian_information_heading.upcase
expect(page).to have_content guardian_photo_heading.upcase
expect(page).to have_content guardian_email_field.titleize
expect(page).to have_content guardian_2_information_heading.upcase
expect(page).to have_content guardian_2_photo_heading.upcase
expect(page).to have_content guardian_2_email_field.titleize
expect(page).to have_content guardian_2_phone_field.titleize
expect(page).to have_content guardian_2_address_street1_field.titleize
fill_in guardian_first_name_field, with: 'Guardian'
fill_in guardian_last_name_field, with: 'Name'
fill_in guardian_phone_field, with: '001101'
fill_in person_first_name_field, with: 'Jane'
fill_in person_last_name_field, with: 'Doe'
fill_in_person_address_fields
fill_in person_phone_field, with: '555-555-5555'
fill_in person_email_field, with: 'jane.doe@test.com'
drop_file Rails.root.join(file_fixture("person_photo.png")), type: :dropzone
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
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
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
draw_signature file_fixture('signature.png'), 'medical_release_signature_base64'
fill_in guardian_2_first_name_field, with: 'Second'
fill_in guardian_2_last_name_field, with: 'Guardian'
fill_in guardian_2_phone_field, with: '999'
click_button submit_release_button
expect(page).to have_content(successful_submission_message)
expect(MedicalRelease.last.guardian_2_first_name).to eq 'Second'
end
end
context "when signed in as account manager" do
before do
sign_in current_user
@@ -142,4 +261,139 @@ feature "User managing medical releases" do
def view_release_pdf_link_for(release)
['Download', href: medical_release_contracts_path(release, format: 'pdf')]
end
def person_first_name_field
"medical_release[person_first_name]"
end
def person_last_name_field
"medical_release[person_last_name]"
end
def person_email_field
"medical_release[person_email]"
end
def person_phone_field
"medical_release[person_phone]"
end
def submit_release_button
t 'shared.submit_release_short'
end
def successful_submission_message
"Your release was successfully submitted. Thank you."
end
def fill_in_person_address_fields
fill_in person_address_street1_field, with: "123 Test Lane"
fill_in person_address_city_field, with: "New York"
fill_in person_address_state_field, with: "NY"
fill_in person_address_zip_field, with: '1000'
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
def person_address_street1_field
t('helpers.label.medical_release.person_address_street1')
end
def person_address_city_field
t('helpers.label.medical_release.person_address_city')
end
def person_address_state_field
t('helpers.label.medical_release.person_address_state')
end
def person_address_zip_field
t('helpers.label.medical_release.person_address_zip')
end
def guardian_first_name_field
t('helpers.label.medical_release.guardian_first_name')
end
def guardian_last_name_field
t('helpers.label.medical_release.guardian_last_name')
end
def guardian_phone_field
t('helpers.label.medical_release.guardian_phone')
end
def guardian_email_field
t('helpers.label.medical_release.guardian_email')
end
def guardian_address_street1_field
t('helpers.label.medical_release.guardian_address_street1')
end
def guardian_address_city_field
t('helpers.label.medical_release.guardian_address_city')
end
def guardian_address_state_field
t('helpers.label.medical_release.guardian_address_state')
end
def guardian_address_zip_field
t('helpers.label.medical_release.guardian_address_zip')
end
def guardian_photo_field
'medical_release[guardian_photo]'
end
def person_is_minor_checkbox
'medical_release_minor'
end
def guardian_2_first_name_field
t('helpers.label.medical_release.guardian_2_first_name')
end
def guardian_2_last_name_field
t('helpers.label.medical_release.guardian_2_last_name')
end
def guardian_2_phone_field
t('helpers.label.medical_release.guardian_2_phone')
end
def guardian_2_email_field
t('helpers.label.medical_release.guardian_2_email')
end
def guardian_2_address_street1_field
t('helpers.label.medical_release.guardian_2_address_street1')
end
def email_validation_error_for(prefix)
"#{prefix} email is not an email"
end
def guardian_photo_heading
t 'public.medical_releases.new.guardian_photo.heading'
end
def guardian_information_heading
t 'public.medical_releases.new.guardian_info.heading'
end
def guardian_2_photo_heading
t 'public.medical_releases.new.guardian_2_photo.heading'
end
def guardian_2_information_heading
t 'public.medical_releases.new.guardian_2_info.heading'
end
end