From 225ee98e0d8b948f5d2a4c6ec0276a9e33f2d3c7 Mon Sep 17 00:00:00 2001 From: Peter Mangiafico Date: Wed, 13 Nov 2024 13:42:57 -0800 Subject: [PATCH] check speechToTextWF for assembling --- app/services/workflow_state_service.rb | 1 + spec/services/workflow_state_service_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/services/workflow_state_service.rb b/app/services/workflow_state_service.rb index 170c60399..f01dae687 100644 --- a/app/services/workflow_state_service.rb +++ b/app/services/workflow_state_service.rb @@ -33,6 +33,7 @@ def assembling? active_workflow_except_step?(workflow: 'wasSeedPreassemblyWF', process: 'end-was-seed-preassembly') || active_workflow_except_step?(workflow: 'gisDeliveryWF', process: 'start-accession-workflow') || active_workflow_except_step?(workflow: 'ocrWF', process: 'end-ocr') || + active_workflow_except_step?(workflow: 'speechToTextWF', process: 'end-stt') || active_workflow?(workflow: 'gisAssemblyWF') end diff --git a/spec/services/workflow_state_service_spec.rb b/spec/services/workflow_state_service_spec.rb index a41888897..9c25207dc 100644 --- a/spec/services/workflow_state_service_spec.rb +++ b/spec/services/workflow_state_service_spec.rb @@ -85,6 +85,7 @@ let(:gis_delivery_wf_response) { instance_double(Dor::Workflow::Response::Workflow, active_for?: false) } let(:gis_assembly_wf_response) { instance_double(Dor::Workflow::Response::Workflow, active_for?: false) } let(:ocr_wf_response) { instance_double(Dor::Workflow::Response::Workflow, active_for?: false) } + let(:stt_wf_response) { instance_double(Dor::Workflow::Response::Workflow, active_for?: false) } let(:process) { instance_double(Dor::Workflow::Response::Process, name: 'arbitrary') } before do @@ -94,6 +95,7 @@ allow(workflow_client).to receive(:workflow).with(pid: druid, workflow_name: 'gisDeliveryWF').and_return(gis_delivery_wf_response) allow(workflow_client).to receive(:workflow).with(pid: druid, workflow_name: 'gisAssemblyWF').and_return(gis_assembly_wf_response) allow(workflow_client).to receive(:workflow).with(pid: druid, workflow_name: 'ocrWF').and_return(ocr_wf_response) + allow(workflow_client).to receive(:workflow).with(pid: druid, workflow_name: 'speechToTextWF').and_return(stt_wf_response) end context 'when there is an active assemblyWF' do @@ -168,12 +170,23 @@ end end + context 'when there is an active speechToTextWF' do + before do + allow(stt_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: [process, process]) + end + + it 'returns true' do + expect(workflow_state).to be_assembling + end + end + context 'when only ignored steps are incomplete' do let(:accessioning_initiate_process) { instance_double(Dor::Workflow::Response::Process, name: 'accessioning-initiate') } let(:end_was_crawl_process) { instance_double(Dor::Workflow::Response::Process, name: 'end-was-crawl-preassembly') } let(:end_was_seed_process) { instance_double(Dor::Workflow::Response::Process, name: 'end-was-seed-preassembly') } let(:start_accession_process) { instance_double(Dor::Workflow::Response::Process, name: 'start-accession-workflow') } let(:end_ocr_process) { instance_double(Dor::Workflow::Response::Process, name: 'end-ocr') } + let(:end_stt_process) { instance_double(Dor::Workflow::Response::Process, name: 'end-stt') } before do allow(assembly_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: [accessioning_initiate_process]) @@ -181,6 +194,7 @@ allow(was_seed_preassembly_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: [end_was_seed_process]) allow(gis_delivery_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: [start_accession_process]) allow(ocr_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: [end_ocr_process]) + allow(stt_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: [end_stt_process]) end it 'returns false' do @@ -195,6 +209,7 @@ allow(was_seed_preassembly_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: []) allow(gis_delivery_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: []) allow(ocr_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: []) + allow(stt_wf_response).to receive_messages(active_for?: true, incomplete_processes_for: []) end it 'returns false' do