Upstream sync
This commit is contained in:
@@ -17,7 +17,7 @@ RSpec.describe BroadcastsChannel, type: :channel do
|
||||
it "broadcasts to the channel" do
|
||||
status_content = ApplicationController.render partial: "broadcasts/broadcast_status", locals: { broadcast: broadcast }
|
||||
video_content = ApplicationController.render partial: "broadcasts/video", locals: { broadcast: broadcast }
|
||||
live_take = ApplicationController.render partial: "broadcasts/live_take", locals: { broadcast: broadcast }
|
||||
recording_status_content = ApplicationController.render partial: "broadcasts/recording_status", locals: { broadcast: broadcast }
|
||||
|
||||
expect {
|
||||
BroadcastsChannel.broadcast_stream_updates(broadcast)
|
||||
@@ -28,7 +28,7 @@ RSpec.describe BroadcastsChannel, type: :channel do
|
||||
full_live_stream_playback_url: broadcast.full_live_stream_playback_url,
|
||||
status_content: status_content,
|
||||
video_content: video_content,
|
||||
live_take_content: live_take,
|
||||
recording_status_content: recording_status_content,
|
||||
streamer_status: broadcast.streamer_status
|
||||
})
|
||||
end
|
||||
@@ -36,7 +36,7 @@ RSpec.describe BroadcastsChannel, type: :channel do
|
||||
|
||||
describe '#stream_recording_ready' do
|
||||
it 'broadcasts to the channel with the right data' do
|
||||
create_list(:broadcast_recording, 1, broadcast: broadcast)
|
||||
create_list(:broadcast_recording, 1, broadcast: broadcast)
|
||||
recordings = broadcast.broadcast_recordings.visible.paginate(page: 1)
|
||||
flash_message = OpenStruct.new(notice: 'Hello world', alert: nil)
|
||||
flash_content = ApplicationController.render partial: 'application/flash', locals: { flash: flash_message }
|
||||
@@ -47,7 +47,7 @@ RSpec.describe BroadcastsChannel, type: :channel do
|
||||
BroadcastsChannel.stream_recording_ready(broadcast, recordings, 'Hello world')
|
||||
}.to have_broadcasted_to(broadcast).with({
|
||||
event: 'stream_recording_ready',
|
||||
flash_content: flash_content,
|
||||
flash_content: flash_content,
|
||||
recordings_content: recordings_content,
|
||||
recordings_nav_content: recordings_nav_content
|
||||
})
|
||||
|
||||
@@ -30,6 +30,24 @@ feature "Admin managing accounts" do
|
||||
expect(page).to have_content "Created at less than a minute ago"
|
||||
end
|
||||
|
||||
scenario "locks and unlocks account" do
|
||||
sign_in current_user
|
||||
visit admin_signed_in_root_path
|
||||
expect(Account.last.locked?).to eq false
|
||||
|
||||
click_button "Manage"
|
||||
expect(page).not_to have_content "Unlock Account"
|
||||
click_link "Lock Account"
|
||||
|
||||
expect(Account.last.locked?).to eq true
|
||||
|
||||
click_button "Manage"
|
||||
expect(page).not_to have_content "Lock Account"
|
||||
click_link "Unlock Account"
|
||||
|
||||
expect(Account.last.locked?).to eq false
|
||||
end
|
||||
|
||||
scenario "sees videos for an account in the system" do
|
||||
visit_account_overview_page
|
||||
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
require "rails_helper"
|
||||
|
||||
feature "Guest account sign up" do
|
||||
scenario "guest can select ME Suite PRO in 'interested in' dropdown" do
|
||||
visit new_account_path
|
||||
|
||||
expect(page).to have_selector("img[src*='ME_PRO_black']")
|
||||
select "ME Suite PRO", from: interested_in_product_dropdown
|
||||
end
|
||||
|
||||
scenario "creates a new account and signs in successfully" do
|
||||
visit new_account_path
|
||||
|
||||
@@ -38,4 +45,10 @@ feature "Guest account sign up" do
|
||||
|
||||
expect(page).to have_content "Sign Up"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def interested_in_product_dropdown
|
||||
"user[interested_product_name]"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -684,6 +684,15 @@ feature 'User managing appearance releases' do
|
||||
expect(page).to have_selector("#top-person-photo[src^='#{person_photo_url}']")
|
||||
end
|
||||
|
||||
scenario "viewing the contract PDF - it shows person photo on first page if person photo is attached" do
|
||||
appearance_release = create(:appearance_release_with_contract_template, :native, :minor_with_guardian_photo, project: project)
|
||||
|
||||
visit view_release_pdf_html_preview_link_for(appearance_release)
|
||||
|
||||
person_photo_url = url_for(appearance_release.person_photo.variant(auto_orient: true, resize: "200x200")).to_s
|
||||
expect(page).to have_selector("#top-person-photo[src^='#{person_photo_url}']")
|
||||
end
|
||||
|
||||
scenario 'deleting a release', js: true do
|
||||
appearance_release = create(:appearance_release, project: project)
|
||||
|
||||
|
||||
@@ -151,6 +151,41 @@ feature 'User managing broadcasts' do
|
||||
end
|
||||
end
|
||||
|
||||
scenario 'broadcast recordings are shown in correct layout', js: true do
|
||||
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
|
||||
create(:broadcast_recording, broadcast: broadcast, asset_uid: "asset_uid_1")
|
||||
|
||||
visit project_broadcast_path(project, broadcast)
|
||||
|
||||
expect(page).to have_selector("li.media")
|
||||
expect(page).to have_selector("div.play-thumbnail")
|
||||
expect(page).to have_selector("div.media-body")
|
||||
expect(page).to have_selector("div.play-btn")
|
||||
end
|
||||
|
||||
scenario 'active playing media has highlighted background (live take or recording)', js: true do
|
||||
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
|
||||
create(:broadcast_recording, broadcast: broadcast, asset_uid: "asset_uid_1")
|
||||
create(:broadcast_recording, broadcast: broadcast, asset_uid: "asset_uid_2")
|
||||
|
||||
visit project_broadcast_path(project, broadcast)
|
||||
|
||||
expect(page).to have_selector("#live-take.playing-highlight")
|
||||
expect(page).to have_selector(".play-btn-svg", count: 3, visible: false)
|
||||
|
||||
first("[data-behavior='play_recording']").click
|
||||
|
||||
expect(page).not_to have_selector("#live-take.playing-highlight")
|
||||
expect(page).to have_selector("li.media.playing-highlight", count: 1)
|
||||
expect(page).to have_selector("li.media", count: 2)
|
||||
|
||||
first("[data-behavior='play_stream']").click
|
||||
|
||||
expect(page).to have_selector("#live-take.playing-highlight")
|
||||
expect(page).to have_selector("li.media", count: 2)
|
||||
expect(page).not_to have_selector("li.media.playing-highlight")
|
||||
end
|
||||
|
||||
context 'When the user is associate' do
|
||||
let(:current_user) { create(:user, :associate) }
|
||||
|
||||
|
||||
34
spec/features/user_managing_locked_account_spec.rb
Normal file
34
spec/features/user_managing_locked_account_spec.rb
Normal file
@@ -0,0 +1,34 @@
|
||||
require "rails_helper"
|
||||
|
||||
feature "User managing locked account" do
|
||||
let(:user) { create(:user, :account_manager) }
|
||||
let(:project) { create(:project) }
|
||||
|
||||
before do
|
||||
sign_in(user)
|
||||
user.accounts.first.update(locked: true)
|
||||
end
|
||||
|
||||
scenario "user is redirected to custom landing page when opens projects index page" do
|
||||
paths = [
|
||||
projects_path,
|
||||
project_path(project),
|
||||
project_task_requests_path(project),
|
||||
project_contract_templates_path(project),
|
||||
project_broadcasts_path(project),
|
||||
project_videos_path(project),
|
||||
]
|
||||
|
||||
paths.each do |path|
|
||||
visit path
|
||||
|
||||
expect(page).to have_content locked_account_warning
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def locked_account_warning
|
||||
t 'locked_accounts.index.account_locked_message'
|
||||
end
|
||||
end
|
||||
@@ -367,7 +367,7 @@ feature "User managing material releases" do
|
||||
expect(page).to have_content("No Media")
|
||||
|
||||
click_on "Manage"
|
||||
click_on "Add Media"
|
||||
click_on "Media"
|
||||
|
||||
expect(page).to have_content("Add Files")
|
||||
expect(page).to have_content("Apple MacBook Air")
|
||||
|
||||
@@ -197,13 +197,13 @@ feature "User managing medical releases" do
|
||||
expect(page).to have_css('i.fa.fa-check-circle.fa-2x', count: 1)
|
||||
end
|
||||
|
||||
scenario "Download All is visible" do
|
||||
scenario "Download button is visible" do
|
||||
create(:medical_release_with_contract_template, :native, project: project)
|
||||
create(:medical_release_with_contract_template, :non_native, project: project)
|
||||
|
||||
visit project_medical_releases_path(project)
|
||||
|
||||
expect(page).to have_content download_all_button
|
||||
expect(page).to have_content download_button
|
||||
end
|
||||
|
||||
scenario "Download action in Manage menu is visible" do
|
||||
@@ -285,7 +285,7 @@ feature "User managing medical releases" do
|
||||
|
||||
visit project_medical_releases_path(project)
|
||||
|
||||
expect(page).not_to have_content download_all_button
|
||||
expect(page).not_to have_content download_button
|
||||
end
|
||||
|
||||
scenario "Download action in Manage menu is not visible" do
|
||||
@@ -329,7 +329,7 @@ feature "User managing medical releases" do
|
||||
|
||||
visit project_medical_releases_path(project)
|
||||
|
||||
expect(page).not_to have_content download_all_button
|
||||
expect(page).not_to have_content download_button
|
||||
end
|
||||
|
||||
scenario "Download action in Manage menu is not visible" do
|
||||
@@ -362,8 +362,8 @@ feature "User managing medical releases" do
|
||||
|
||||
private
|
||||
|
||||
def download_all_button
|
||||
'Download All'
|
||||
def download_button
|
||||
'Download'
|
||||
end
|
||||
|
||||
def download_action
|
||||
|
||||
@@ -62,12 +62,12 @@ feature "User managing misc releases" do
|
||||
sign_in current_user
|
||||
end
|
||||
|
||||
scenario "Download All is visible" do
|
||||
scenario "Download is visible" do
|
||||
create(:misc_release_with_contract_template, :native, project: project)
|
||||
|
||||
visit project_misc_releases_path(project)
|
||||
|
||||
expect(page).to have_content download_all_button
|
||||
expect(page).to have_content download_button
|
||||
end
|
||||
|
||||
scenario "Downloading PDF of native misc release is possible" do
|
||||
@@ -165,8 +165,8 @@ feature "User managing misc releases" do
|
||||
|
||||
private
|
||||
|
||||
def download_all_button
|
||||
'Download All'
|
||||
def download_button
|
||||
'Download'
|
||||
end
|
||||
|
||||
def view_release_pdf_link_for(release)
|
||||
|
||||
@@ -86,34 +86,36 @@ describe GenerateContractsZipJob do
|
||||
end
|
||||
|
||||
it "generates ZIP containing CSV file with all filtered releases data for filtered releases" do
|
||||
lowercase_plural = subject.constantize.model_name.plural
|
||||
GenerateContractsZipJob.perform_now(project, download, subject, [], '', 'complete')
|
||||
if subject.respond_to?(:complete) && subject.respond_to?(:incomplete)
|
||||
lowercase_plural = subject.constantize.model_name.plural
|
||||
GenerateContractsZipJob.perform_now(project, download, subject, [], '', 'complete')
|
||||
|
||||
complete_releases = project.public_send(lowercase_plural).complete
|
||||
incomplete_releases = project.public_send(lowercase_plural).incomplete
|
||||
complete_releases = project.public_send(lowercase_plural).complete
|
||||
incomplete_releases = project.public_send(lowercase_plural).incomplete
|
||||
|
||||
generated_zip = download.file.blob.download
|
||||
csv_file_name = "#{project.name.parameterize}_#{lowercase_plural.gsub('_', '-')}.csv"
|
||||
Zip::InputStream.open(StringIO.new(generated_zip)) do |io|
|
||||
while entry = io.get_next_entry
|
||||
next unless entry.name == csv_file_name
|
||||
generated_zip = download.file.blob.download
|
||||
csv_file_name = "#{project.name.parameterize}_#{lowercase_plural.gsub('_', '-')}.csv"
|
||||
Zip::InputStream.open(StringIO.new(generated_zip)) do |io|
|
||||
while entry = io.get_next_entry
|
||||
next unless entry.name == csv_file_name
|
||||
|
||||
csv_file = entry.get_input_stream.read
|
||||
csv_file = entry.get_input_stream.read
|
||||
|
||||
release_class = Object.const_get subject
|
||||
release_headers = release_class.csv_headers
|
||||
release_class = Object.const_get subject
|
||||
release_headers = release_class.csv_headers
|
||||
|
||||
release_headers.each do |header|
|
||||
expect(csv_file).to match header
|
||||
expect(csv_file).not_to match translation_missing
|
||||
end
|
||||
release_headers.each do |header|
|
||||
expect(csv_file).to match header
|
||||
expect(csv_file).not_to match translation_missing
|
||||
end
|
||||
|
||||
complete_releases.each do |release|
|
||||
expect(csv_file).to match release.person_first_name
|
||||
end
|
||||
complete_releases.each do |release|
|
||||
expect(csv_file).to match release.person_first_name
|
||||
end
|
||||
|
||||
incomplete_releases.each do |release|
|
||||
expect(csv_file).not_to match release.person_first_name
|
||||
incomplete_releases.each do |release|
|
||||
expect(csv_file).not_to match release.person_first_name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -164,16 +166,19 @@ describe GenerateContractsZipJob do
|
||||
end
|
||||
|
||||
context "generates ZIP for acquired media releases" do
|
||||
let(:release) { create(:acquired_media_release_with_contract_template, :native, project: project) }
|
||||
let(:release) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "John Doe") }
|
||||
let(:release2) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "Jane Doe") }
|
||||
let(:release3) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "Brad Doe") }
|
||||
subject { 'AcquiredMediaRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "generates ZIP for appearance releases" do
|
||||
let(:release) { create(:appearance_release_with_contract_template, :native, project: project, person_name: "John Doe") }
|
||||
let(:incomplete_release) { create(:appearance_release_with_contract_template, project: project, person_name: "Jane Doe") }
|
||||
let(:complete_release) { create(:appearance_release_with_contract_template, :non_native, project: project, person_name: "Brad Doe") }
|
||||
let(:release) { create(:appearance_release_with_contract_template, :native, project: project, person_name: "John") }
|
||||
let(:incomplete_release) { create(:appearance_release_with_contract_template, project: project, person_name: "Jane") }
|
||||
let(:complete_release) { create(:appearance_release_with_contract_template, :non_native, project: project, person_name: "Brad") }
|
||||
subject { 'AppearanceRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
@@ -181,45 +186,63 @@ describe GenerateContractsZipJob do
|
||||
end
|
||||
|
||||
context "generates ZIP for location releases" do
|
||||
let(:release) { create(:location_release_with_contract_template, :native, project: project) }
|
||||
let(:release) { create(:location_release_with_contract_template, :native, project: project, name: "John") }
|
||||
let(:release2) { create(:location_release_with_contract_template, :native, project: project, name: "Jane") }
|
||||
let(:release3) { create(:location_release_with_contract_template, :native, project: project, name: "Brad") }
|
||||
subject { 'LocationRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "generates ZIP for material releases" do
|
||||
let(:release) { create(:material_release_with_contract_template, :native, project: project) }
|
||||
let(:release) { create(:material_release_with_contract_template, :native, project: project, name: "John") }
|
||||
let(:release2) { create(:material_release_with_contract_template, :native, project: project, name: "Jane") }
|
||||
let(:release3) { create(:material_release_with_contract_template, :native, project: project, name: "Brad") }
|
||||
subject { 'MaterialRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "generates ZIP for medical releases" do
|
||||
let(:release) { create(:medical_release_with_contract_template, :native, project: project) }
|
||||
let(:release) { create(:medical_release_with_contract_template, :native, project: project, person_name: "John Doe") }
|
||||
let(:release2) { create(:medical_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
|
||||
let(:release3) { create(:medical_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
|
||||
subject { 'MedicalRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "generates ZIP for misc releases" do
|
||||
let(:release) { create(:misc_release_with_contract_template, :native, project: project) }
|
||||
let(:release) { create(:misc_release_with_contract_template, :native, project: project, person_name: "John Doe") }
|
||||
let(:release2) { create(:misc_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
|
||||
let(:release3) { create(:misc_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
|
||||
subject { 'MiscRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "generates ZIP for music releases" do
|
||||
let(:release) { create(:music_release_with_contract_template, project: project) }
|
||||
let(:release) { create(:music_release_with_contract_template, project: project, name: "John") }
|
||||
let(:release2) { create(:music_release_with_contract_template, project: project, name: "Jane") }
|
||||
let(:release3) { create(:music_release_with_contract_template, project: project, name: "Brad") }
|
||||
subject { 'MusicRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "generates ZIP for talent releases" do
|
||||
let(:release) { create(:talent_release_with_contract_template, :native, project: project) }
|
||||
let(:release) { create(:talent_release_with_contract_template, :native, project: project, person_name: "John Doe") }
|
||||
let(:release2) { create(:talent_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
|
||||
let(:release3) { create(:talent_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
|
||||
subject { 'TalentRelease' }
|
||||
|
||||
it_behaves_like "generates ZIP containig CSV file with all releases data"
|
||||
it_behaves_like "generates ZIP containig CSV file with specific releases data"
|
||||
end
|
||||
|
||||
context "When there are errors" do
|
||||
|
||||
@@ -23,7 +23,7 @@ describe MatchAppearanceReleasesJob do
|
||||
MatchAppearanceReleasesJob.perform_now project, attachments
|
||||
end
|
||||
|
||||
it "does not create new appearance release if BrayniacAI returns empty matches array" do
|
||||
it "creates a new incomplete appearance release for headshots which cannot be matched by BrayniacAI" do
|
||||
signed_ids = [dummy_appearance_release.person_photo.blob.signed_id]
|
||||
keys = [dummy_appearance_release.person_photo.key]
|
||||
payload = {
|
||||
@@ -44,9 +44,41 @@ describe MatchAppearanceReleasesJob do
|
||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||
expect(dummy_matching_request).to receive(:destroy)
|
||||
|
||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||
expect {
|
||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||
}.to change{AppearanceRelease.count}.by(1)
|
||||
|
||||
expect(AppearanceRelease.last).to eq dummy_appearance_release
|
||||
expect(AppearanceRelease.last.contract).not_to be_attached
|
||||
expect(AppearanceRelease.last.person_photo).to be_attached
|
||||
end
|
||||
|
||||
it "creates a new incomplete appearance release for contracts which cannot be matched by BrayniacAI" do
|
||||
signed_ids = [dummy_appearance_release.contract.blob.signed_id]
|
||||
keys = [dummy_appearance_release.contract.key]
|
||||
payload = {
|
||||
project: project,
|
||||
attachments: signed_ids
|
||||
}
|
||||
qr_matching_payload = {
|
||||
bucket: '',
|
||||
files: keys,
|
||||
request_id: dummy_matching_request.id
|
||||
}
|
||||
qr_matching_mock_response = double(
|
||||
request_id: dummy_matching_request.id,
|
||||
matches: []
|
||||
)
|
||||
|
||||
expect(MatchingRequest).to receive(:create).with(payload).and_return(dummy_matching_request)
|
||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||
expect(dummy_matching_request).to receive(:destroy)
|
||||
|
||||
expect {
|
||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||
}.to change{AppearanceRelease.count}.by(1)
|
||||
|
||||
expect(AppearanceRelease.last.contract).to be_attached
|
||||
expect(AppearanceRelease.last.person_photo).not_to be_attached
|
||||
end
|
||||
|
||||
it "creates new incomplete appearance release if BrayniacAI returns single headshot match" do
|
||||
@@ -84,6 +116,49 @@ describe MatchAppearanceReleasesJob do
|
||||
expect(AppearanceRelease.last.contract).not_to be_attached
|
||||
end
|
||||
|
||||
it "creates new appearance releases for matches and unmatches at the same time" do
|
||||
signed_ids = [dummy_appearance_release.contract.blob.signed_id, dummy_appearance_release.person_photo.blob.signed_id]
|
||||
keys = [dummy_appearance_release.contract.key, dummy_appearance_release.person_photo.blob.key]
|
||||
payload = {
|
||||
project: project,
|
||||
attachments: signed_ids
|
||||
}
|
||||
qr_matching_payload = {
|
||||
bucket: '',
|
||||
files: keys,
|
||||
request_id: dummy_matching_request.id
|
||||
}
|
||||
mock_match = double(
|
||||
headshots: [],
|
||||
contracts: [keys.first],
|
||||
unknowns: [],
|
||||
identifier: 'some/identifier/123'
|
||||
)
|
||||
matches = [mock_match]
|
||||
qr_matching_mock_response = double(
|
||||
request_id: dummy_matching_request.id,
|
||||
matches: matches
|
||||
)
|
||||
|
||||
expect(MatchingRequest).to receive(:create).with(payload).and_return(dummy_matching_request)
|
||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||
expect(dummy_matching_request).to receive(:destroy)
|
||||
|
||||
expect {
|
||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||
}.to change{AppearanceRelease.count}.by(2)
|
||||
|
||||
matched_release, unmatched_release = AppearanceRelease.last(2)
|
||||
|
||||
expect(matched_release.identifier).to eq mock_match.identifier
|
||||
expect(matched_release.person_photo).not_to be_attached
|
||||
expect(matched_release.contract).to be_attached
|
||||
|
||||
expect(unmatched_release.identifier).to be_nil
|
||||
expect(unmatched_release.person_photo).to be_attached
|
||||
expect(unmatched_release.contract).not_to be_attached
|
||||
end
|
||||
|
||||
it "creates new incomplete appearance release if BrayniacAI returns single contract match" do
|
||||
signed_ids = [dummy_appearance_release.contract.blob.signed_id]
|
||||
keys = [dummy_appearance_release.contract.key]
|
||||
@@ -213,4 +288,4 @@ describe MatchAppearanceReleasesJob do
|
||||
expect(releases[1].contract.attached?).to eq true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user