Upstream sync

This commit is contained in:
Senad Uka
2020-08-20 06:50:51 +02:00
parent 190ff2854b
commit 41bf88e358
127 changed files with 1399 additions and 565 deletions

View File

@@ -104,9 +104,9 @@ feature "Admin managing accounts" do
visit profile_path
click_link "Admin"
expect(page).to have_content /Name Plan # Projects Monthly Video Upload Minutes Total Video Upload Minutes Total Storage Created At/
expect(page).to have_content /MGM ME Suite 1 1 minutes 2 minutes 6.74 MB/
expect(page).to have_content /Discovery ME Suite 0 0 minutes 0 minutes 0 Bytes/
expect(page).to have_content /Name Plan # Projects # Releases Signed Monthly Video Upload Minutes Total Video Upload Minutes Total Storage Created At/
expect(page).to have_content /MGM ME Suite 1 0 1 minutes 2 minutes 6.74 MB/
expect(page).to have_content /Discovery ME Suite 0 0 0 minutes 0 minutes 0 Bytes/
end
scenario "Uses the search button to filter accounts", js: true do

View File

@@ -0,0 +1,35 @@
require 'rails_helper'
feature 'Admin managing broadcasts' do
let(:current_user) { create(:user, admin: true, email: 'user@test.com') }
let(:project) { create(:project, account: current_user.primary_account, name: 'Test Project') }
let(:broadcast) { create(:broadcast, project: project) }
before do
stub_mux_live_stream
sign_in current_user
end
scenario 'admin can edit a broadcast' do
visit edit_admin_broadcast_path(broadcast)
fill_in video_conference_url_override_field, with: 'http://test.com'
click_on submit_button
expect(page).to have_content(update_notice)
end
private
def video_conference_url_override_field
Broadcast.human_attribute_name(:video_conference_url_override)
end
def submit_button
'Save Changes'
end
def update_notice
t 'admin.broadcasts.update.notice'
end
end

View File

@@ -66,6 +66,30 @@ RSpec.feature 'User manages contract templates', type: :feature do
expect(ContractTemplate.last.amendment_clause.body.to_s).to match /Amendment clause text/
end
scenario 'appearance release template has an amendment clause field' do
visit new_project_contract_template_path(project)
fill_in 'Name', with: 'My Release Template'
select 'Appearance Release', from: 'Release type'
fill_hidden amendment_clause_field, with: 'Amendment clause text'
click_on create_release_template_button
expect(page).to have_content(create_contract_template_success_message)
expect(ContractTemplate.last.amendment_clause.body.to_s).to match /Amendment clause text/
end
scenario 'medical release template has a questionnaire legal text field' do
visit new_project_contract_template_path(project)
fill_in 'Name', with: 'My Release Template'
select 'Medical Release', from: 'Release type'
fill_hidden questionnaire_legal_text_field, with: 'Questionnaire legal text'
click_on create_release_template_button
expect(page).to have_content(create_contract_template_success_message)
expect(ContractTemplate.last.questionnaire_legal_text.body.to_s).to match /Questionnaire legal text/
end
scenario 'medical release template has a guardian clause field' do
visit new_project_contract_template_path(project)
@@ -484,6 +508,10 @@ RSpec.feature 'User manages contract templates', type: :feature do
'contract_template_amendment_clause_trix_input_contract_template'
end
def questionnaire_legal_text_field
'contract_template_questionnaire_legal_text_trix_input_contract_template'
end
def signature_legal_text_field
'contract_template_signature_legal_text'
end

View File

@@ -301,7 +301,7 @@ feature "User managing acquired_media releases" do
end
by "attaching files" do
drop_file Rails.root.join(file_fixture("video_file.mp4")), type: "file-info-dropzone"
drop_file Rails.root.join(file_fixture("video_file.mp4")), type: "dropzone"
click_button create_release_button
expect(page).to have_invalid_field(acquired_media_name_field)
@@ -328,7 +328,7 @@ feature "User managing acquired_media releases" do
expect(page).to have_filled_in_data(release_data)
fill_in_release_fields name: "New name"
drop_file Rails.root.join(file_fixture("person_photo.png")), type: "file-info-dropzone"
drop_file Rails.root.join(file_fixture("person_photo.png")), type: "dropzone"
click_button update_release_button
expect(page).to have_content(update_release_notice)
@@ -366,20 +366,7 @@ feature "User managing acquired_media releases" do
email: "john.doe@test.com",
created_at: DateTime.new(2020, 2, 20, 11, 0, 0),
),
],
file_infos:
[
build(:file_info,
filename: "aaa.jpg",
content_type: "image/jpeg"),
build(:file_info,
filename: "bbb.mp4",
content_type: "video/mp4"),
build(:file_info,
filename: "unknown.doc",
content_type: "unknown/file")
]
)
sign_in(current_user)
@@ -398,12 +385,6 @@ feature "User managing acquired_media releases" do
expect(pdf_body).to have_content("Woman")
expect(pdf_body).to have_content("Brunette")
expect(pdf_body).to have_content("FILES")
expect(pdf_body).to have_content("Photos")
expect(pdf_body).to have_content("Videos")
expect(pdf_body).to have_content("aaa.jpg")
expect(pdf_body).to have_content("bbb.mp4")
expect(pdf_body).to have_content("unknown.doc")
expect(pdf_body).to have_content("Other files")
end
scenario "viewing the contract PDF for a minor" do

View File

@@ -11,10 +11,11 @@ feature 'User managing appearance releases' 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)
contract_template = create(:contract_template, project: project, question_1_text: "Question 1")
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
expect(page).to have_content("QUESTIONNAIRE")
expect(page).to have_photo_button
fill_in person_first_name_field, with: 'Jane'
@@ -144,6 +145,73 @@ feature 'User managing appearance releases' do
expect(page).to have_content dummy_signature_legal_text
end
scenario "signing amendment for a not-signed amendment release", js: true do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
release = create(:appearance_release, contract_template: contract_template, project: project)
expect(release.amendment_signed?).to be_falsey
visit new_account_project_contract_template_appearance_release_amendment_path(project.account, project, contract_template, release)
expect(page).to have_content amendments_heading.upcase
fill_in amendment_signer_name_field, with: 'Big Signer'
draw_signature file_fixture("signature.png"), amendment_signature_field
click_button sign_amendment_button
expect(page).to have_content signed_successfully_message
expect(AppearanceRelease.find(release.id).amendment_signed?).to be_truthy
end
scenario "opening signing amendment page for a signed amendment release shows already signed message", js: true do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
release = create(:appearance_release, :amendment_signed, contract_template: contract_template, project: project)
expect(release.amendment_signed?).to be_truthy
visit new_account_project_contract_template_appearance_release_amendment_path(project.account, project, contract_template, release)
expect(page).not_to have_content amendments_heading.upcase
expect(page).not_to have_content signed_successfully_message
expect(page).to have_content already_signed_message
end
scenario "amendment signing form has copy URL button" do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
release = create(:appearance_release, contract_template: contract_template, project: project)
visit new_account_project_contract_template_appearance_release_amendment_path(project.account, project, contract_template, release)
expect(page).to have_content copy_url_button
end
scenario 'exhibit section answers are saved to appearance release', 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, exhibit_a_legal_text: "Exhibit A legal text", exhibit_a_question_text: "Exhibit A Question text")
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
expect(page).to have_photo_button
expect(page).to have_content("Exhibit A legal text")
expect(page).to have_content("Exhibit A Question Text")
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'
fill_in person_date_of_birth, with: '01/01/1999'
fill_in exhibit_a_answer, with: 'Answer to exhibit A question'
attach_file person_photo_field, file_fixture('person_photo.png'), visible: :all
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
click_button submit_release_button
expect(page).to have_content(successful_submission_message)
end
end
context 'when signed in' do
@@ -292,13 +360,89 @@ feature 'User managing appearance releases' do
expect(page).to have_content('New Name')
end
scenario 'viewing the contract PDF' do
appearance_release = create(:appearance_release_with_contract_template,
scenario "signing amendment for a not-signed amendment release", js: true do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
release = create(:appearance_release, person_first_name: "First", contract_template: contract_template, project: project)
expect(release.amendment_signed?).to be_falsey
visit project_appearance_releases_path(project)
expect(page).to have_content "First"
click_on manage_button
expect(page).to have_link sign_amendment_link
new_window = window_opened_by { click_link sign_amendment_link }
within_window new_window do
expect(page).to have_content amendments_heading.upcase
fill_in amendment_signer_name_field, with: 'Big Signer'
draw_signature file_fixture("signature.png"), amendment_signature_field
click_button sign_amendment_button
expect(page).to have_content signed_successfully_message
expect(AppearanceRelease.find(release.id).amendment_signed?).to be_truthy
end
end
scenario "signed amendment release does not have sign amendment option in manage dropdown", js: true do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
release = create(:appearance_release, :amendment_signed, person_first_name: "Firstn", contract_template: contract_template, project: project)
expect(release.amendment_signed?).to be_truthy
visit project_appearance_releases_path(project)
expect(page).to have_content "Firstn"
click_on manage_button
expect(page).not_to have_link sign_amendment_link
end
scenario "signed amendment release have checked box in appearance releases index table", js: true do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
not_signed_release = create(:appearance_release, person_first_name: "Firstn", contract_template: contract_template, project: project)
expect(not_signed_release.amendment_signed?).to be_falsey
visit project_appearance_releases_path(project)
expect(page).to have_content "Firstn"
expect(page).to have_css('i.fa.fa-square-o', count: 1)
expect(page).to have_css('i.fa.fa-check-square', count: 0)
signed_release = create(:appearance_release, :amendment_signed, person_first_name: "Signedn", contract_template: contract_template, project: project)
expect(signed_release.amendment_signed?).to be_truthy
visit project_appearance_releases_path(project)
expect(page).to have_content "Signedn"
expect(page).to have_css('i.fa.fa-square-o', count: 1)
expect(page).to have_css('i.fa.fa-check-square-o', count: 1)
end
scenario "amendment signing form has copy URL button when user is signed in", js: true do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
release = create(:appearance_release, contract_template: contract_template, project: project)
visit new_account_project_contract_template_appearance_release_amendment_path(project.account, project, contract_template, release)
expect(page).to have_content copy_url_button
end
scenario 'viewing the contract PDF when amendment is not yet signed' do
appearance_release = create(:appearance_release,
:native,
contract_template: build(:contract_template, project: project, question_1_text: 'Q1'),
project: project,
person_first_name: 'Jane',
person_last_name: 'Doe',
tag_list: 'Woman, Brunette',
question_1_answer: 'A1',
notes: [
build(:note,
content: 'Note 1',
@@ -319,6 +463,7 @@ feature 'User managing appearance releases' do
expect(content_type).to eq('application/pdf')
expect(content_disposition).to include('inline')
expect(pdf_filename).to include('doe-jane')
expect(pdf_body).not_to have_content amendment_page_heading
expect(pdf_body).to have_content('Jane Doe')
expect(pdf_body).to have_content('NOTES')
expect(pdf_body).to have_content('Note 1')
@@ -331,6 +476,37 @@ feature 'User managing appearance releases' do
expect(pdf_body).to have_content('Woman')
expect(pdf_body).to have_content('Brunette')
expect(pdf_body).not_to have_content('Guardian Email')
expect(pdf_body).to have_content('Q1')
expect(pdf_body).to have_content('A1')
end
scenario "viewing the contract PDF when amendment is signed" do
contract_template = create(:appearance_release_contract_template, :with_amendment_clause, project: project)
appearance_release = create(:appearance_release,
:amendment_signed,
:native,
contract_template: contract_template,
project: project,
person_first_name: "John",
person_last_name: "Doe")
sign_in(current_user)
visit project_appearance_releases_path(project)
click_link *view_release_pdf_link_for(appearance_release)
expect(content_type).to eq("application/pdf")
expect(content_disposition).to include("inline")
expect(pdf_filename).to include("doe-john")
expect(pdf_body).to have_content("John Doe")
expect(pdf_body).to have_content amendment_page_heading.upcase
expect(pdf_body).to have_content amendment_clause_label
expect(pdf_body).to have_content amendment_signer_name_label
expect(pdf_body).to have_content amendment_signature_label
expect(pdf_body).to have_content contract_template.amendment_clause.to_plain_text
expect(pdf_body).to have_content appearance_release.amendment_signer_name
end
scenario 'viewing contract PDF for a minor without guardian photo' do
@@ -368,12 +544,40 @@ feature 'User managing appearance releases' do
expect(pdf_body).to have_content('Guardian Email')
end
scenario "viewing the contract PDF when exhibit A is signed" do
contract_template = create(:appearance_release_contract_template, project: project, exhibit_a_legal_text: "Exhibit A legal text", exhibit_a_question_text: "Exhibit A question text")
appearance_release = create(:appearance_release,
:amendment_signed,
:native,
contract_template: contract_template,
project: project,
person_first_name: "John",
person_last_name: "Doe",
exhibit_a_answer: "Answer to exhibit A question"
)
sign_in(current_user)
visit project_appearance_releases_path(project)
click_link *view_release_pdf_link_for(appearance_release)
expect(content_type).to eq("application/pdf")
expect(content_disposition).to include("inline")
expect(pdf_filename).to include("doe-john")
expect(pdf_body).to have_content("John Doe")
expect(pdf_body).to have_content "Exhibit A"
expect(pdf_body).to have_content "Exhibit A legal text"
expect(pdf_body).to have_content "Exhibit A question text"
expect(pdf_body).to have_content "Answer to exhibit A question"
end
scenario 'deleting a release', js: true do
appearance_release = create(:appearance_release, project: project)
visit project_appearance_releases_path(project)
click_on 'Manage'
click_on manage_button
accept_alert do
click_link *destroy_link_for(appearance_release)
end
@@ -576,7 +780,7 @@ feature 'User managing appearance releases' do
create(:appearance_release_with_contract_template, :native, project: project)
visit project_appearance_releases_path(project)
click_on "Manage"
click_on manage_button
expect(page).not_to have_link(review_action, exact: true)
end
@@ -594,7 +798,7 @@ feature 'User managing appearance releases' do
visit project_appearance_releases_path(project)
click_on 'Manage'
click_on manage_button
expect(page).not_to have_link('Download', exact: true)
end
@@ -602,7 +806,7 @@ feature 'User managing appearance releases' do
create(:appearance_release_with_contract_template, :native, project: project)
visit project_appearance_releases_path(project)
click_on "Manage"
click_on manage_button
expect(page).not_to have_link(review_action, exact: true)
end
@@ -725,6 +929,10 @@ feature 'User managing appearance releases' do
t('helpers.label.appearance_release.person_last_name')
end
def exhibit_a_answer
'appearance_release[exhibit_a_answer]'
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"
@@ -866,4 +1074,56 @@ feature 'User managing appearance releases' do
def date_issued
t 'contracts.for_office_use_only.description_labels.date_issued'
end
def amendments_heading
t 'public.amendments.new.amendment.heading'
end
def amendment_signer_name_field
'appearance_release[amendment_signer_name]'
end
def amendment_signature_field
'appearance_release_amendment_signature_base64'
end
def sign_amendment_button
t 'shared.submit_release_long'
end
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 manage_button
t 'appearance_releases.appearance_release.actions.manage'
end
def sign_amendment_link
t 'appearance_releases.appearance_release.actions.sign_amendment'
end
def copy_url_button
t 'public.amendments.new.copy_url'
end
def amendment_page_heading
t 'contracts.amendment_page.heading'
end
def amendment_signer_name_label
t 'contracts.amendment_page.description_labels.amendment_signer_name'
end
def amendment_clause_label
t 'contracts.amendment_page.description_labels.amendment_clause'
end
def amendment_signature_label
t 'contracts.amendment_page.description_labels.amendment_signature'
end
end

View File

@@ -10,7 +10,7 @@ feature 'User managing broadcasts' do
context 'managing broadcasts' do
before do
sign_in current_user
allow(MuxLiveStream).to receive(:new).and_return(double(id: 'id', key: 'key', playback_id: 'playback_id'))
stub_mux_live_stream
end
scenario "splash page is shown if there are no existing streams" do

View File

@@ -373,7 +373,7 @@ feature "User managing location releases" do
expect(pdf_body).to have_content("Test Loc")
expect(pdf_body).to have_content amendment_page_heading
expect(pdf_body).to have_content amendment_page_heading.upcase
expect(pdf_body).to have_content amendment_clause_label
expect(pdf_body).to have_content amendment_signer_name_label
expect(pdf_body).to have_content amendment_signature_label

View File

@@ -137,11 +137,14 @@ feature "User managing medical releases" do
contract_template = create(:contract_template,
project: project,
question_1_text: 'Question 1',
question_2_text: 'Question 2'
question_2_text: 'Question 2',
questionnaire_legal_text: 'Questionnaire legal text',
)
visit new_account_project_contract_template_medical_release_path(project.account, project, contract_template)
expect(page).to have_content 'Questionnaire legal text'
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"
@@ -287,6 +290,32 @@ feature "User managing medical releases" do
expect(pdf_body).not_to have_content date_issued
expect(pdf_body).not_to have_content 'Big Joe'
end
scenario 'viewing contract PDF with medical questionnaire' do
contract_template = create(:medical_release_contract_template, project: project, questionnaire_legal_text: "Questionnaire legal text", question_1_text: "Question 1 text")
medical_release = create(:medical_release,
:native,
contract_template: contract_template,
project: project,
person_first_name: "John",
person_last_name: "Doe",
question_1_answer: "Question 1 answer",
)
sign_in(current_user)
visit project_medical_releases_path(project)
click_link *view_release_pdf_link_for(medical_release)
expect(content_type).to eq("application/pdf")
expect(content_disposition).to include("inline")
expect(pdf_filename).to include("doe-john")
expect(pdf_body).to have_content("John Doe")
expect(pdf_body).to have_content "MEDICAL QUESTIONNAIRE"
expect(pdf_body).to have_content "Question 1 text"
expect(pdf_body).to have_content "Question 1 answer"
expect(pdf_body).to have_content "Questionnaire legal text"
end
end
context "when the user is manager(project manager)" do

View File

@@ -34,7 +34,7 @@ feature "User managing projects" do
project = create(:project, members: user, account: user.primary_account, name: "Avengers", client_name: "Marvel")
visit projects_path
click_on "button"
find('button.btn-white').click
click_on "Edit"
it_also "requires a project name" do
@@ -103,6 +103,25 @@ feature "User managing projects" do
expect(page).not_to have_content("Music Releases")
end
scenario 'searching for a project', js: true do
project_1 = create(:project, members: user, account: user.primary_account, name: "America's Greatest TV Show")
project_2 = create(:project, members: user, account: user.primary_account, name: "Wild Animals")
visit projects_path
expect(page).to have_content("America's Greatest TV Show")
expect(page).to have_content("Wild Animals")
within 'form#search' do
fill_in 'Search', with: 'Greatest'
find('button.rounded-pill-left').click
end
expect(page).to have_content("America's Greatest TV Show")
expect(page).not_to have_content("Wild Animals")
expect(page).to have_field('Search', with: 'Greatest')
end
# TODO: What about the welcome page when there are no existing projects?
context "for a manager" do

View File

@@ -40,7 +40,7 @@ feature "User managing videos" do
expect(page).to have_selector "#video_edl_file", visible: :all
expect(page).to have_selector "#video_graphics_only_edl_file", visible: :all
expect(page).to have_selector "#video_audio_only_edl_file", visible: :all
expect(page).to have_link "click here", href: /mailto:info@bigmedia\.ai/
expect(page).to have_link "click here", href: /mailto:info@mesuite\.ai/
fill_in_video_fields name: "New name", number: "99"