dor-workflow-client 5.1.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.circleci/config.yml +1 -1
 - data/.rubocop.yml +159 -4
 - data/.rubocop_todo.yml +24 -42
 - data/Gemfile +11 -0
 - data/Gemfile.lock +75 -54
 - data/dor-workflow-client.gemspec +1 -9
 - data/lib/dor/workflow/client/queues.rb +0 -97
 - data/lib/dor/workflow/client/status.rb +41 -41
 - data/lib/dor/workflow/client/version.rb +1 -1
 - data/lib/dor/workflow/client/workflow_routes.rb +1 -9
 - data/lib/dor/workflow/client/workflow_template.rb +0 -9
 - data/lib/dor/workflow/client.rb +2 -8
 - data/spec/{workflow → dor/workflow}/client/connection_factory_spec.rb +7 -5
 - data/spec/{workflow → dor/workflow}/client/status_spec.rb +13 -11
 - data/spec/{workflow → dor/workflow}/client/workflow_routes_spec.rb +7 -16
 - data/spec/{workflow → dor/workflow}/client/workflow_template_spec.rb +1 -10
 - data/spec/{workflow → dor/workflow}/client_spec.rb +38 -185
 - data/spec/{models → dor/workflow}/response/process_spec.rb +6 -1
 - data/spec/{models → dor/workflow}/response/workflow_spec.rb +7 -0
 - data/spec/{models → dor/workflow}/response/workflows_spec.rb +4 -3
 - metadata +14 -126
 - data/spec/{workflow → dor/workflow}/client/lifecycle_routes_spec.rb +2 -2
 - /data/spec/{workflow → dor/workflow}/client/requestor_spec.rb +0 -0
 - /data/spec/{workflow → dor/workflow}/client/version_routes_spec.rb +0 -0
 
| 
         @@ -14,6 +14,7 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                </workflow>
         
     | 
| 
       15 
15 
     | 
    
         
             
                EOXML
         
     | 
| 
       16 
16 
     | 
    
         
             
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
              let(:client) { described_class.new connection: mock_http_connection, logger: mock_logger }
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
19 
     | 
    
         
             
              let(:wf_xml_label) do
         
     | 
| 
       19 
20 
     | 
    
         
             
                <<~EOXML
         
     | 
| 
         @@ -47,10 +48,9 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       47 
48 
     | 
    
         
             
                @druid = 'druid:123'
         
     | 
| 
       48 
49 
     | 
    
         
             
              end
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
              let(:client) { described_class.new connection: mock_http_connection, logger: mock_logger }
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
51 
     | 
    
         
             
              describe '#connection' do
         
     | 
| 
       53 
52 
     | 
    
         
             
                subject(:conn) { client.requestor.connection }
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
       54 
54 
     | 
    
         
             
                let(:client) { described_class.new url: 'http://example.com', timeout: 99, logger: mock_logger }
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
                it 'has a timeout' do
         
     | 
| 
         @@ -89,7 +89,8 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       89 
89 
     | 
    
         
             
                  end
         
     | 
| 
       90 
90 
     | 
    
         | 
| 
       91 
91 
     | 
    
         
             
                  it 'sets the lane_id param' do
         
     | 
| 
       92 
     | 
    
         
            -
                     
     | 
| 
      
 92 
     | 
    
         
            +
                    # if the stub isn't correct (params), it will raise an error
         
     | 
| 
      
 93 
     | 
    
         
            +
                    expect { client.create_workflow_by_name(@druid, 'laneIdWF', lane_id: 'foo_lane', version: 1) }.not_to raise_error
         
     | 
| 
       93 
94 
     | 
    
         
             
                  end
         
     | 
| 
       94 
95 
     | 
    
         
             
                end
         
     | 
| 
       95 
96 
     | 
    
         | 
| 
         @@ -101,7 +102,8 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       101 
102 
     | 
    
         
             
                  end
         
     | 
| 
       102 
103 
     | 
    
         | 
| 
       103 
104 
     | 
    
         
             
                  it 'sets the version param if provided in options hash' do
         
     | 
| 
       104 
     | 
    
         
            -
                     
     | 
| 
      
 105 
     | 
    
         
            +
                    # if the stub isn't correct (options hash), it will raise an error
         
     | 
| 
      
 106 
     | 
    
         
            +
                    expect { client.create_workflow_by_name(@druid, 'versionWF', version: 2) }.not_to raise_error
         
     | 
| 
       105 
107 
     | 
    
         
             
                  end
         
     | 
| 
       106 
108 
     | 
    
         
             
                end
         
     | 
| 
       107 
109 
     | 
    
         
             
              end
         
     | 
| 
         @@ -121,21 +123,6 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       121 
123 
     | 
    
         
             
                end
         
     | 
| 
       122 
124 
     | 
    
         
             
              end
         
     | 
| 
       123 
125 
     | 
    
         | 
| 
       124 
     | 
    
         
            -
              describe '#workflow_templates' do
         
     | 
| 
       125 
     | 
    
         
            -
                subject(:workflow_templates) { client.workflow_templates }
         
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
                let(:workflow_template_client) { instance_double Dor::Workflow::Client::WorkflowTemplate, all: 'data' }
         
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
                before do
         
     | 
| 
       130 
     | 
    
         
            -
                  allow(Dor::Workflow::Client::WorkflowTemplate).to receive(:new).and_return(workflow_template_client)
         
     | 
| 
       131 
     | 
    
         
            -
                end
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                it 'delegates to the client' do
         
     | 
| 
       134 
     | 
    
         
            -
                  expect(workflow_templates).to eq 'data'
         
     | 
| 
       135 
     | 
    
         
            -
                  expect(workflow_template_client).to have_received(:all)
         
     | 
| 
       136 
     | 
    
         
            -
                end
         
     | 
| 
       137 
     | 
    
         
            -
              end
         
     | 
| 
       138 
     | 
    
         
            -
             
     | 
| 
       139 
126 
     | 
    
         
             
              describe '#templates' do
         
     | 
| 
       140 
127 
     | 
    
         
             
                subject(:templates) { client.templates }
         
     | 
| 
       141 
128 
     | 
    
         | 
| 
         @@ -145,7 +132,16 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       145 
132 
     | 
    
         
             
              end
         
     | 
| 
       146 
133 
     | 
    
         | 
| 
       147 
134 
     | 
    
         
             
              describe '#workflow_status' do
         
     | 
| 
      
 135 
     | 
    
         
            +
                subject(:workflow_status) { client.workflow_status(druid: druid, workflow: workflow_name, process: step_name) }
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
       148 
137 
     | 
    
         
             
                let(:repo) { nil }
         
     | 
| 
      
 138 
     | 
    
         
            +
                let(:step_name) { 'registrar-approval' }
         
     | 
| 
      
 139 
     | 
    
         
            +
                let(:workflow_name) { 'etdSubmitWF' }
         
     | 
| 
      
 140 
     | 
    
         
            +
                let(:status) { 200 }
         
     | 
| 
      
 141 
     | 
    
         
            +
                let(:response) do
         
     | 
| 
      
 142 
     | 
    
         
            +
                  [status, {}, xml]
         
     | 
| 
      
 143 
     | 
    
         
            +
                end
         
     | 
| 
      
 144 
     | 
    
         
            +
                let(:xml) { '' }
         
     | 
| 
       149 
145 
     | 
    
         
             
                let(:druid) { @druid }
         
     | 
| 
       150 
146 
     | 
    
         
             
                let(:stubs) do
         
     | 
| 
       151 
147 
     | 
    
         
             
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
         @@ -155,22 +151,13 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       155 
151 
     | 
    
         
             
                  end
         
     | 
| 
       156 
152 
     | 
    
         
             
                end
         
     | 
| 
       157 
153 
     | 
    
         | 
| 
       158 
     | 
    
         
            -
                subject { client.workflow_status(druid: druid, workflow: workflow_name, process: step_name) }
         
     | 
| 
       159 
     | 
    
         
            -
                let(:step_name) { 'registrar-approval' }
         
     | 
| 
       160 
     | 
    
         
            -
                let(:workflow_name) { 'etdSubmitWF' }
         
     | 
| 
       161 
     | 
    
         
            -
                let(:status) { 200 }
         
     | 
| 
       162 
     | 
    
         
            -
                let(:response) do
         
     | 
| 
       163 
     | 
    
         
            -
                  [status, {}, xml]
         
     | 
| 
       164 
     | 
    
         
            -
                end
         
     | 
| 
       165 
     | 
    
         
            -
                let(:xml) { '' }
         
     | 
| 
       166 
     | 
    
         
            -
             
     | 
| 
       167 
154 
     | 
    
         
             
                context 'when a single result is returned' do
         
     | 
| 
       168 
155 
     | 
    
         
             
                  let(:xml) do
         
     | 
| 
       169 
156 
     | 
    
         
             
                    '<workflow><process name="registrar-approval" status="completed" /></workflow>'
         
     | 
| 
       170 
157 
     | 
    
         
             
                  end
         
     | 
| 
       171 
158 
     | 
    
         | 
| 
       172 
159 
     | 
    
         
             
                  it 'returns status as a string' do
         
     | 
| 
       173 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 160 
     | 
    
         
            +
                    expect(workflow_status).to eq('completed')
         
     | 
| 
       174 
161 
     | 
    
         
             
                  end
         
     | 
| 
       175 
162 
     | 
    
         
             
                end
         
     | 
| 
       176 
163 
     | 
    
         | 
| 
         @@ -181,7 +168,7 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       181 
168 
     | 
    
         
             
                  end
         
     | 
| 
       182 
169 
     | 
    
         | 
| 
       183 
170 
     | 
    
         
             
                  it 'returns the status for the highest version' do
         
     | 
| 
       184 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 171 
     | 
    
         
            +
                    expect(workflow_status).to eq('waiting')
         
     | 
| 
       185 
172 
     | 
    
         
             
                  end
         
     | 
| 
       186 
173 
     | 
    
         
             
                end
         
     | 
| 
       187 
174 
     | 
    
         | 
| 
         @@ -189,7 +176,7 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       189 
176 
     | 
    
         
             
                  let(:status) { 404 }
         
     | 
| 
       190 
177 
     | 
    
         | 
| 
       191 
178 
     | 
    
         
             
                  it 'throws the missing workflow exception' do
         
     | 
| 
       192 
     | 
    
         
            -
                    expect {  
     | 
| 
      
 179 
     | 
    
         
            +
                    expect { workflow_status }.to raise_error Dor::MissingWorkflowException
         
     | 
| 
       193 
180 
     | 
    
         
             
                  end
         
     | 
| 
       194 
181 
     | 
    
         
             
                end
         
     | 
| 
       195 
182 
     | 
    
         | 
| 
         @@ -197,7 +184,7 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       197 
184 
     | 
    
         
             
                  let(:status) { 422 }
         
     | 
| 
       198 
185 
     | 
    
         | 
| 
       199 
186 
     | 
    
         
             
                  it 'throws an exception' do
         
     | 
| 
       200 
     | 
    
         
            -
                    expect {  
     | 
| 
      
 187 
     | 
    
         
            +
                    expect { workflow_status }.to raise_error Dor::WorkflowException
         
     | 
| 
       201 
188 
     | 
    
         
             
                  end
         
     | 
| 
       202 
189 
     | 
    
         
             
                end
         
     | 
| 
       203 
190 
     | 
    
         | 
| 
         @@ -207,7 +194,7 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       207 
194 
     | 
    
         
             
                  end
         
     | 
| 
       208 
195 
     | 
    
         | 
| 
       209 
196 
     | 
    
         
             
                  it 'throws an exception' do
         
     | 
| 
       210 
     | 
    
         
            -
                    expect {  
     | 
| 
      
 197 
     | 
    
         
            +
                    expect { workflow_status }.to raise_error Dor::WorkflowException, "Unable to parse response:\nsomething not xml"
         
     | 
| 
       211 
198 
     | 
    
         
             
                  end
         
     | 
| 
       212 
199 
     | 
    
         
             
                end
         
     | 
| 
       213 
200 
     | 
    
         | 
| 
         @@ -218,36 +205,11 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       218 
205 
     | 
    
         
             
                  let(:step_name) { 'publish' }
         
     | 
| 
       219 
206 
     | 
    
         | 
| 
       220 
207 
     | 
    
         
             
                  it 'returns nil' do
         
     | 
| 
       221 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 208 
     | 
    
         
            +
                    expect(workflow_status).to be_nil
         
     | 
| 
       222 
209 
     | 
    
         
             
                  end
         
     | 
| 
       223 
210 
     | 
    
         
             
                end
         
     | 
| 
       224 
211 
     | 
    
         
             
              end
         
     | 
| 
       225 
212 
     | 
    
         | 
| 
       226 
     | 
    
         
            -
              describe '#all_workflows_xml' do
         
     | 
| 
       227 
     | 
    
         
            -
                subject(:all_workflows_xml) { client.all_workflows_xml('druid:123') }
         
     | 
| 
       228 
     | 
    
         
            -
             
     | 
| 
       229 
     | 
    
         
            -
                let(:workflow) { 'etdSubmitWF' }
         
     | 
| 
       230 
     | 
    
         
            -
                let(:xml) do
         
     | 
| 
       231 
     | 
    
         
            -
                  <<~XML
         
     | 
| 
       232 
     | 
    
         
            -
                    <workflows>
         
     | 
| 
       233 
     | 
    
         
            -
                    <workflow id="etdSubmitWF"><process name="registrar-approval" status="completed" /></workflow>
         
     | 
| 
       234 
     | 
    
         
            -
                    <workflow id="etdSubmitWF"><process name="registrar-approval" status="completed" /></workflow>
         
     | 
| 
       235 
     | 
    
         
            -
                    </workflows>
         
     | 
| 
       236 
     | 
    
         
            -
                  XML
         
     | 
| 
       237 
     | 
    
         
            -
                end
         
     | 
| 
       238 
     | 
    
         
            -
                let(:stubs) do
         
     | 
| 
       239 
     | 
    
         
            -
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       240 
     | 
    
         
            -
                    stub.get('objects/druid:123/workflows') do |_env|
         
     | 
| 
       241 
     | 
    
         
            -
                      [200, {}, xml]
         
     | 
| 
       242 
     | 
    
         
            -
                    end
         
     | 
| 
       243 
     | 
    
         
            -
                  end
         
     | 
| 
       244 
     | 
    
         
            -
                end
         
     | 
| 
       245 
     | 
    
         
            -
             
     | 
| 
       246 
     | 
    
         
            -
                it 'returns the xml for a given druid' do
         
     | 
| 
       247 
     | 
    
         
            -
                  expect(all_workflows_xml).to eq(xml)
         
     | 
| 
       248 
     | 
    
         
            -
                end
         
     | 
| 
       249 
     | 
    
         
            -
              end
         
     | 
| 
       250 
     | 
    
         
            -
             
     | 
| 
       251 
213 
     | 
    
         
             
              describe '#workflows' do
         
     | 
| 
       252 
214 
     | 
    
         
             
                let(:xml) { '<workflow id="accessionWF"><process name="publish" status="completed" /></workflow>' }
         
     | 
| 
       253 
215 
     | 
    
         
             
                let(:stubs) do
         
     | 
| 
         @@ -323,8 +285,8 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       323 
285 
     | 
    
         
             
                end
         
     | 
| 
       324 
286 
     | 
    
         
             
              end
         
     | 
| 
       325 
287 
     | 
    
         | 
| 
       326 
     | 
    
         
            -
               
     | 
| 
       327 
     | 
    
         
            -
                before 
     | 
| 
      
 288 
     | 
    
         
            +
              describe '#objects_for_workstep' do
         
     | 
| 
      
 289 
     | 
    
         
            +
                before do
         
     | 
| 
       328 
290 
     | 
    
         
             
                  @workflow   = 'googleScannedBookWF'
         
     | 
| 
       329 
291 
     | 
    
         
             
                  @completed  = 'google-download'
         
     | 
| 
       330 
292 
     | 
    
         
             
                  @waiting    = 'process-content'
         
     | 
| 
         @@ -353,8 +315,8 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       353 
315 
     | 
    
         
             
                  end
         
     | 
| 
       354 
316 
     | 
    
         
             
                end
         
     | 
| 
       355 
317 
     | 
    
         | 
| 
       356 
     | 
    
         
            -
                context 'a query using qualified workflow names for completed and waiting' do
         
     | 
| 
       357 
     | 
    
         
            -
                  before  
     | 
| 
      
 318 
     | 
    
         
            +
                context 'with a query using qualified workflow names for completed and waiting' do
         
     | 
| 
      
 319 
     | 
    
         
            +
                  before do
         
     | 
| 
       358 
320 
     | 
    
         
             
                    @qualified_waiting   = "#{@workflow}:#{@waiting}"
         
     | 
| 
       359 
321 
     | 
    
         
             
                    @qualified_completed = "#{@workflow}:#{@completed}"
         
     | 
| 
       360 
322 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -376,24 +338,28 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       376 
338 
     | 
    
         
             
                      let(:laneid) { 'default' }
         
     | 
| 
       377 
339 
     | 
    
         
             
                    end
         
     | 
| 
       378 
340 
     | 
    
         
             
                  end
         
     | 
| 
      
 341 
     | 
    
         
            +
             
     | 
| 
       379 
342 
     | 
    
         
             
                  describe 'explicit lane_id' do
         
     | 
| 
       380 
343 
     | 
    
         
             
                    it_behaves_like 'lane-aware' do
         
     | 
| 
       381 
344 
     | 
    
         
             
                      let(:laneid) { 'lane1' }
         
     | 
| 
       382 
345 
     | 
    
         
             
                    end
         
     | 
| 
       383 
346 
     | 
    
         
             
                  end
         
     | 
| 
       384 
347 
     | 
    
         | 
| 
       385 
     | 
    
         
            -
                  context 'URI string creation' do
         
     | 
| 
       386 
     | 
    
         
            -
                    before  
     | 
| 
      
 348 
     | 
    
         
            +
                  context 'with URI string creation' do
         
     | 
| 
      
 349 
     | 
    
         
            +
                    before do
         
     | 
| 
       387 
350 
     | 
    
         
             
                      @xml = %(<objects count="1"><object id="druid:ab123de4567"/></objects>)
         
     | 
| 
       388 
351 
     | 
    
         
             
                    end
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
       389 
353 
     | 
    
         
             
                    it 'with only one completed step passed in as a String' do
         
     | 
| 
       390 
354 
     | 
    
         
             
                      allow(mock_http_connection).to receive(:get).with("workflow_queue?waiting=#{@qualified_waiting}&completed=#{@qualified_completed}&lane-id=default").and_return(double(Faraday::Response, body: @xml))
         
     | 
| 
       391 
355 
     | 
    
         
             
                      expect(client.objects_for_workstep(@qualified_completed, @qualified_waiting)).to eq(['druid:ab123de4567'])
         
     | 
| 
       392 
356 
     | 
    
         
             
                    end
         
     | 
| 
      
 357 
     | 
    
         
            +
             
     | 
| 
       393 
358 
     | 
    
         
             
                    it 'without any completed steps, only waiting' do
         
     | 
| 
       394 
359 
     | 
    
         
             
                      allow(mock_http_connection).to receive(:get).with("workflow_queue?waiting=#{@qualified_waiting}&lane-id=default").and_return(double(Faraday::Response, body: @xml))
         
     | 
| 
       395 
360 
     | 
    
         
             
                      expect(client.objects_for_workstep(nil, @qualified_waiting)).to eq(['druid:ab123de4567'])
         
     | 
| 
       396 
361 
     | 
    
         
             
                    end
         
     | 
| 
      
 362 
     | 
    
         
            +
             
     | 
| 
       397 
363 
     | 
    
         
             
                    it 'same but with lane_id' do
         
     | 
| 
       398 
364 
     | 
    
         
             
                      allow(mock_http_connection).to receive(:get).with("workflow_queue?waiting=#{@qualified_waiting}&lane-id=lane1").and_return(double(Faraday::Response, body: @xml))
         
     | 
| 
       399 
365 
     | 
    
         
             
                      expect(client.objects_for_workstep(nil, @qualified_waiting, 'lane1')).to eq(['druid:ab123de4567'])
         
     | 
| 
         @@ -402,8 +368,8 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       402 
368 
     | 
    
         
             
                end
         
     | 
| 
       403 
369 
     | 
    
         
             
              end
         
     | 
| 
       404 
370 
     | 
    
         | 
| 
       405 
     | 
    
         
            -
              context ' 
     | 
| 
       406 
     | 
    
         
            -
                before 
     | 
| 
      
 371 
     | 
    
         
            +
              context 'when empty workflow queue' do
         
     | 
| 
      
 372 
     | 
    
         
            +
                before do
         
     | 
| 
       407 
373 
     | 
    
         
             
                  @workflow   = 'googleScannedBookWF'
         
     | 
| 
       408 
374 
     | 
    
         
             
                  @completed  = 'google-download'
         
     | 
| 
       409 
375 
     | 
    
         
             
                  @waiting    = 'process-content'
         
     | 
| 
         @@ -422,134 +388,21 @@ RSpec.describe Dor::Workflow::Client do 
     | 
|
| 
       422 
388 
     | 
    
         
             
                end
         
     | 
| 
       423 
389 
     | 
    
         
             
              end
         
     | 
| 
       424 
390 
     | 
    
         | 
| 
       425 
     | 
    
         
            -
              context 'get errored workflow steps' do
         
     | 
| 
       426 
     | 
    
         
            -
                before(:all) do
         
     | 
| 
       427 
     | 
    
         
            -
                  @workflow   = 'accessionWF'
         
     | 
| 
       428 
     | 
    
         
            -
                  @step       = 'publish'
         
     | 
| 
       429 
     | 
    
         
            -
                end
         
     | 
| 
       430 
     | 
    
         
            -
             
     | 
| 
       431 
     | 
    
         
            -
                let(:stubs) do
         
     | 
| 
       432 
     | 
    
         
            -
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       433 
     | 
    
         
            -
                    stub.get("/workflow_queue?error=#{@step}&workflow=#{@workflow}") do |_env|
         
     | 
| 
       434 
     | 
    
         
            -
                      [200, {}, <<-EOXML]
         
     | 
| 
       435 
     | 
    
         
            -
                        <objects count="1">
         
     | 
| 
       436 
     | 
    
         
            -
                           <object id="druid:ab123cd4567" errorMessage="This is an error message"/>
         
     | 
| 
       437 
     | 
    
         
            -
                         </objects>
         
     | 
| 
       438 
     | 
    
         
            -
                      EOXML
         
     | 
| 
       439 
     | 
    
         
            -
                    end
         
     | 
| 
       440 
     | 
    
         
            -
                  end
         
     | 
| 
       441 
     | 
    
         
            -
                end
         
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
                describe 'errored_objects_for_workstep' do
         
     | 
| 
       444 
     | 
    
         
            -
                  it 'returns error messages for errored objects' do
         
     | 
| 
       445 
     | 
    
         
            -
                    expect(client.errored_objects_for_workstep(@workflow, @step)).to eq('druid:ab123cd4567' => 'This is an error message')
         
     | 
| 
       446 
     | 
    
         
            -
                  end
         
     | 
| 
       447 
     | 
    
         
            -
                end
         
     | 
| 
       448 
     | 
    
         
            -
             
     | 
| 
       449 
     | 
    
         
            -
                describe 'count_errored_for_workstep' do
         
     | 
| 
       450 
     | 
    
         
            -
                  it 'counts how many steps are errored out' do
         
     | 
| 
       451 
     | 
    
         
            -
                    expect(client.count_errored_for_workstep(@workflow, @step)).to eq(1)
         
     | 
| 
       452 
     | 
    
         
            -
                  end
         
     | 
| 
       453 
     | 
    
         
            -
                end
         
     | 
| 
       454 
     | 
    
         
            -
              end
         
     | 
| 
       455 
     | 
    
         
            -
             
     | 
| 
       456 
     | 
    
         
            -
              describe '#count_queued_for_workstep' do
         
     | 
| 
       457 
     | 
    
         
            -
                before(:all) do
         
     | 
| 
       458 
     | 
    
         
            -
                  @workflow   = 'accessionWF'
         
     | 
| 
       459 
     | 
    
         
            -
                  @step       = 'publish'
         
     | 
| 
       460 
     | 
    
         
            -
                end
         
     | 
| 
       461 
     | 
    
         
            -
             
     | 
| 
       462 
     | 
    
         
            -
                let(:stubs) do
         
     | 
| 
       463 
     | 
    
         
            -
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       464 
     | 
    
         
            -
                    stub.get("/workflow_queue?queued=#{@step}&workflow=#{@workflow}") do |_env|
         
     | 
| 
       465 
     | 
    
         
            -
                      [200, {}, <<-EOXML]
         
     | 
| 
       466 
     | 
    
         
            -
                        <objects count="1">
         
     | 
| 
       467 
     | 
    
         
            -
                           <object id="druid:ab123cd4567"/>
         
     | 
| 
       468 
     | 
    
         
            -
                         </objects>
         
     | 
| 
       469 
     | 
    
         
            -
                      EOXML
         
     | 
| 
       470 
     | 
    
         
            -
                    end
         
     | 
| 
       471 
     | 
    
         
            -
                  end
         
     | 
| 
       472 
     | 
    
         
            -
                end
         
     | 
| 
       473 
     | 
    
         
            -
             
     | 
| 
       474 
     | 
    
         
            -
                it 'counts how many steps are errored out' do
         
     | 
| 
       475 
     | 
    
         
            -
                  expect(client.count_queued_for_workstep(@workflow, @step)).to eq(1)
         
     | 
| 
       476 
     | 
    
         
            -
                end
         
     | 
| 
       477 
     | 
    
         
            -
              end
         
     | 
| 
       478 
     | 
    
         
            -
             
     | 
| 
       479 
     | 
    
         
            -
              describe '#count_objects_in_step' do
         
     | 
| 
       480 
     | 
    
         
            -
                before(:all) do
         
     | 
| 
       481 
     | 
    
         
            -
                  @workflow   = 'sdrIngestWF'
         
     | 
| 
       482 
     | 
    
         
            -
                  @step       = 'start-ingest'
         
     | 
| 
       483 
     | 
    
         
            -
                  @type       = 'waiting'
         
     | 
| 
       484 
     | 
    
         
            -
                end
         
     | 
| 
       485 
     | 
    
         
            -
             
     | 
| 
       486 
     | 
    
         
            -
                let(:stubs) do
         
     | 
| 
       487 
     | 
    
         
            -
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       488 
     | 
    
         
            -
                    stub.get("/workflow_queue?workflow=#{@workflow}&#{@type}=#{@step}") do |_env|
         
     | 
| 
       489 
     | 
    
         
            -
                      [200, {}, <<-EOXML]
         
     | 
| 
       490 
     | 
    
         
            -
                        <objects count="1">
         
     | 
| 
       491 
     | 
    
         
            -
                          <object id="druid:oo000ra0001" url="null/fedora/objects/druid:oo000ra0001"/>
         
     | 
| 
       492 
     | 
    
         
            -
                        </objects>
         
     | 
| 
       493 
     | 
    
         
            -
                      EOXML
         
     | 
| 
       494 
     | 
    
         
            -
                    end
         
     | 
| 
       495 
     | 
    
         
            -
                  end
         
     | 
| 
       496 
     | 
    
         
            -
                end
         
     | 
| 
       497 
     | 
    
         
            -
             
     | 
| 
       498 
     | 
    
         
            -
                it 'counts how many objects are at the type of step' do
         
     | 
| 
       499 
     | 
    
         
            -
                  expect(client.count_objects_in_step(@workflow, @step, @type)).to eq(1)
         
     | 
| 
       500 
     | 
    
         
            -
                end
         
     | 
| 
       501 
     | 
    
         
            -
              end
         
     | 
| 
       502 
     | 
    
         
            -
             
     | 
| 
       503 
391 
     | 
    
         
             
              describe '#delete_workflow' do
         
     | 
| 
       504 
392 
     | 
    
         
             
                let(:stubs) do
         
     | 
| 
       505 
393 
     | 
    
         
             
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       506 
394 
     | 
    
         
             
                    stub.delete(url) { |_env| [202, {}, ''] }
         
     | 
| 
       507 
395 
     | 
    
         
             
                  end
         
     | 
| 
       508 
396 
     | 
    
         
             
                end
         
     | 
| 
       509 
     | 
    
         
            -
             
     | 
| 
       510 
397 
     | 
    
         
             
                let(:url) { "/objects/#{@druid}/workflows/accessionWF?version=5" }
         
     | 
| 
       511 
398 
     | 
    
         | 
| 
       512 
     | 
    
         
            -
                 
     | 
| 
       513 
     | 
    
         
            -
                   
     | 
| 
       514 
     | 
    
         
            -
                  client.delete_workflow(druid: @druid, workflow: 'accessionWF', version: 5)
         
     | 
| 
       515 
     | 
    
         
            -
                end
         
     | 
| 
       516 
     | 
    
         
            -
              end
         
     | 
| 
       517 
     | 
    
         
            -
             
     | 
| 
       518 
     | 
    
         
            -
              describe '.stale_queued_workflows' do
         
     | 
| 
       519 
     | 
    
         
            -
                let(:stubs) do
         
     | 
| 
       520 
     | 
    
         
            -
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       521 
     | 
    
         
            -
                    stub.get('workflow_queue/all_queued?hours-ago=24&limit=100') do |_env|
         
     | 
| 
       522 
     | 
    
         
            -
                      [200, {}, <<-XML]
         
     | 
| 
       523 
     | 
    
         
            -
                      <workflows>
         
     | 
| 
       524 
     | 
    
         
            -
                          <workflow laneId="lane1" note="annotation" lifecycle="in-process" errorText="stacktrace" errorMessage="NullPointerException" elapsed="1.173" repository="dor" attempts="0" datetime="2008-11-15T13:30:00-0800" status="waiting" process="content-metadata" name="accessionWF" druid="dr:123"/>
         
     | 
| 
       525 
     | 
    
         
            -
                          <workflow laneId="lane2" note="annotation" lifecycle="in-process" errorText="stacktrace" errorMessage="NullPointerException" elapsed="1.173" repository="dor" attempts="0" datetime="2008-11-15T13:30:00-0800" status="waiting" process="jp2-create" name="assemblyWF" druid="dr:456"/>
         
     | 
| 
       526 
     | 
    
         
            -
                      </workflows>
         
     | 
| 
       527 
     | 
    
         
            -
                      XML
         
     | 
| 
       528 
     | 
    
         
            -
                    end
         
     | 
| 
       529 
     | 
    
         
            -
                  end
         
     | 
| 
       530 
     | 
    
         
            -
                end
         
     | 
| 
       531 
     | 
    
         
            -
             
     | 
| 
       532 
     | 
    
         
            -
                it 'returns an Array of Hashes containing each workflow step' do
         
     | 
| 
       533 
     | 
    
         
            -
                  ah = client.stale_queued_workflows hours_ago: 24, limit: 100
         
     | 
| 
       534 
     | 
    
         
            -
                  expected = [
         
     | 
| 
       535 
     | 
    
         
            -
                    { workflow: 'accessionWF', step: 'content-metadata', druid: 'dr:123', lane_id: 'lane1' },
         
     | 
| 
       536 
     | 
    
         
            -
                    { workflow: 'assemblyWF',  step: 'jp2-create',       druid: 'dr:456', lane_id: 'lane2' }
         
     | 
| 
       537 
     | 
    
         
            -
                  ]
         
     | 
| 
       538 
     | 
    
         
            -
                  expect(ah).to eql(expected)
         
     | 
| 
       539 
     | 
    
         
            -
                end
         
     | 
| 
       540 
     | 
    
         
            -
              end
         
     | 
| 
       541 
     | 
    
         
            -
             
     | 
| 
       542 
     | 
    
         
            -
              describe '.count_stale_queued_workflows' do
         
     | 
| 
       543 
     | 
    
         
            -
                let(:stubs) do
         
     | 
| 
       544 
     | 
    
         
            -
                  Faraday::Adapter::Test::Stubs.new do |stub|
         
     | 
| 
       545 
     | 
    
         
            -
                    stub.get('workflow_queue/all_queued?hours-ago=48&count-only=true') do |_env|
         
     | 
| 
       546 
     | 
    
         
            -
                      [200, {}, '<objects count="10"/>']
         
     | 
| 
       547 
     | 
    
         
            -
                    end
         
     | 
| 
       548 
     | 
    
         
            -
                  end
         
     | 
| 
      
 399 
     | 
    
         
            +
                before do
         
     | 
| 
      
 400 
     | 
    
         
            +
                  allow(mock_http_connection).to receive(:delete).with(url).and_call_original
         
     | 
| 
       549 
401 
     | 
    
         
             
                end
         
     | 
| 
       550 
402 
     | 
    
         | 
| 
       551 
     | 
    
         
            -
                it ' 
     | 
| 
       552 
     | 
    
         
            -
                   
     | 
| 
      
 403 
     | 
    
         
            +
                it 'sends a delete request to the workflow service' do
         
     | 
| 
      
 404 
     | 
    
         
            +
                  client.delete_workflow(druid: @druid, workflow: 'accessionWF', version: 5)
         
     | 
| 
      
 405 
     | 
    
         
            +
                  expect(mock_http_connection).to have_received(:delete).with(url)
         
     | 
| 
       553 
406 
     | 
    
         
             
                end
         
     | 
| 
       554 
407 
     | 
    
         
             
              end
         
     | 
| 
       555 
408 
     | 
    
         | 
| 
         @@ -3,9 +3,10 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            RSpec.describe Dor::Workflow::Response::Process do
         
     | 
| 
       6 
     | 
    
         
            -
              let(:parent) { Dor::Workflow::Response::Workflow.new(xml: xml) }
         
     | 
| 
       7 
6 
     | 
    
         
             
              subject(:instance) { parent.process_for_recent_version(name: 'start-assembly') }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
      
 8 
     | 
    
         
            +
              let(:parent) { Dor::Workflow::Response::Workflow.new(xml: xml) }
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       9 
10 
     | 
    
         
             
              describe '#pid' do
         
     | 
| 
       10 
11 
     | 
    
         
             
                subject { instance.pid }
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
         @@ -16,6 +17,7 @@ RSpec.describe Dor::Workflow::Response::Process do 
     | 
|
| 
       16 
17 
     | 
    
         
             
                    </workflow>
         
     | 
| 
       17 
18 
     | 
    
         
             
                  XML
         
     | 
| 
       18 
19 
     | 
    
         
             
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
       19 
21 
     | 
    
         
             
                it { is_expected.to eq 'druid:mw971zk1113' }
         
     | 
| 
       20 
22 
     | 
    
         
             
              end
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
         @@ -29,6 +31,7 @@ RSpec.describe Dor::Workflow::Response::Process do 
     | 
|
| 
       29 
31 
     | 
    
         
             
                    </workflow>
         
     | 
| 
       30 
32 
     | 
    
         
             
                  XML
         
     | 
| 
       31 
33 
     | 
    
         
             
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       32 
35 
     | 
    
         
             
                it { is_expected.to eq 'assemblyWF' }
         
     | 
| 
       33 
36 
     | 
    
         
             
              end
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
         @@ -42,6 +45,7 @@ RSpec.describe Dor::Workflow::Response::Process do 
     | 
|
| 
       42 
45 
     | 
    
         
             
                    </workflow>
         
     | 
| 
       43 
46 
     | 
    
         
             
                  XML
         
     | 
| 
       44 
47 
     | 
    
         
             
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       45 
49 
     | 
    
         
             
                it { is_expected.to eq 'start-assembly' }
         
     | 
| 
       46 
50 
     | 
    
         
             
              end
         
     | 
| 
       47 
51 
     | 
    
         | 
| 
         @@ -55,6 +59,7 @@ RSpec.describe Dor::Workflow::Response::Process do 
     | 
|
| 
       55 
59 
     | 
    
         
             
                    </workflow>
         
     | 
| 
       56 
60 
     | 
    
         
             
                  XML
         
     | 
| 
       57 
61 
     | 
    
         
             
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
       58 
63 
     | 
    
         
             
                it { is_expected.to eq 'default' }
         
     | 
| 
       59 
64 
     | 
    
         
             
              end
         
     | 
| 
       60 
65 
     | 
    
         
             
            end
         
     | 
| 
         @@ -14,6 +14,7 @@ RSpec.describe Dor::Workflow::Response::Workflow do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                    </workflow>
         
     | 
| 
       15 
15 
     | 
    
         
             
                  XML
         
     | 
| 
       16 
16 
     | 
    
         
             
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       17 
18 
     | 
    
         
             
                it { is_expected.to eq 'druid:mw971zk1113' }
         
     | 
| 
       18 
19 
     | 
    
         
             
              end
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
         @@ -26,11 +27,13 @@ RSpec.describe Dor::Workflow::Response::Workflow do 
     | 
|
| 
       26 
27 
     | 
    
         
             
                    </workflow>
         
     | 
| 
       27 
28 
     | 
    
         
             
                  XML
         
     | 
| 
       28 
29 
     | 
    
         
             
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
       29 
31 
     | 
    
         
             
                it { is_expected.to eq 'assemblyWF' }
         
     | 
| 
       30 
32 
     | 
    
         
             
              end
         
     | 
| 
       31 
33 
     | 
    
         | 
| 
       32 
34 
     | 
    
         
             
              describe '#complete?' do
         
     | 
| 
       33 
35 
     | 
    
         
             
                subject { instance.complete? }
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
       34 
37 
     | 
    
         
             
                context 'when all steps are complete' do
         
     | 
| 
       35 
38 
     | 
    
         
             
                  let(:xml) do
         
     | 
| 
       36 
39 
     | 
    
         
             
                    <<~XML
         
     | 
| 
         @@ -40,6 +43,7 @@ RSpec.describe Dor::Workflow::Response::Workflow do 
     | 
|
| 
       40 
43 
     | 
    
         
             
                      </workflow>
         
     | 
| 
       41 
44 
     | 
    
         
             
                    XML
         
     | 
| 
       42 
45 
     | 
    
         
             
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
       43 
47 
     | 
    
         
             
                  it { is_expected.to be true }
         
     | 
| 
       44 
48 
     | 
    
         
             
                end
         
     | 
| 
       45 
49 
     | 
    
         | 
| 
         @@ -52,6 +56,7 @@ RSpec.describe Dor::Workflow::Response::Workflow do 
     | 
|
| 
       52 
56 
     | 
    
         
             
                      </workflow>
         
     | 
| 
       53 
57 
     | 
    
         
             
                    XML
         
     | 
| 
       54 
58 
     | 
    
         
             
                  end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
       55 
60 
     | 
    
         
             
                  it { is_expected.to be false }
         
     | 
| 
       56 
61 
     | 
    
         
             
                end
         
     | 
| 
       57 
62 
     | 
    
         
             
              end
         
     | 
| 
         @@ -68,6 +73,7 @@ RSpec.describe Dor::Workflow::Response::Workflow do 
     | 
|
| 
       68 
73 
     | 
    
         
             
                      </workflow>
         
     | 
| 
       69 
74 
     | 
    
         
             
                    XML
         
     | 
| 
       70 
75 
     | 
    
         
             
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
       71 
77 
     | 
    
         
             
                  it { is_expected.to be false }
         
     | 
| 
       72 
78 
     | 
    
         
             
                end
         
     | 
| 
       73 
79 
     | 
    
         | 
| 
         @@ -81,6 +87,7 @@ RSpec.describe Dor::Workflow::Response::Workflow do 
     | 
|
| 
       81 
87 
     | 
    
         
             
                      </workflow>
         
     | 
| 
       82 
88 
     | 
    
         
             
                    XML
         
     | 
| 
       83 
89 
     | 
    
         
             
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
       84 
91 
     | 
    
         
             
                  it { is_expected.to be true }
         
     | 
| 
       85 
92 
     | 
    
         
             
                end
         
     | 
| 
       86 
93 
     | 
    
         
             
              end
         
     | 
| 
         @@ -14,11 +14,12 @@ RSpec.describe Dor::Workflow::Response::Workflows do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                    </workflows>
         
     | 
| 
       15 
15 
     | 
    
         
             
                  XML
         
     | 
| 
       16 
16 
     | 
    
         
             
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       17 
18 
     | 
    
         
             
                it { is_expected.to eq 'druid:mw971zk1113' }
         
     | 
| 
       18 
19 
     | 
    
         
             
              end
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         
             
              describe '#workflows' do
         
     | 
| 
       21 
     | 
    
         
            -
                subject { instance.workflows }
         
     | 
| 
      
 22 
     | 
    
         
            +
                subject(:workflows) { instance.workflows }
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
       23 
24 
     | 
    
         
             
                let(:xml) do
         
     | 
| 
       24 
25 
     | 
    
         
             
                  <<~XML
         
     | 
| 
         @@ -32,8 +33,8 @@ RSpec.describe Dor::Workflow::Response::Workflows do 
     | 
|
| 
       32 
33 
     | 
    
         
             
                end
         
     | 
| 
       33 
34 
     | 
    
         | 
| 
       34 
35 
     | 
    
         
             
                it 'has children' do
         
     | 
| 
       35 
     | 
    
         
            -
                  expect( 
     | 
| 
       36 
     | 
    
         
            -
                  expect( 
     | 
| 
      
 36 
     | 
    
         
            +
                  expect(workflows).to all(be_kind_of Dor::Workflow::Response::Workflow)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  expect(workflows.map(&:workflow_name)).to eq %w[assemblyWF sdrPreservationWF]
         
     | 
| 
       37 
38 
     | 
    
         
             
                end
         
     | 
| 
       38 
39 
     | 
    
         
             
              end
         
     | 
| 
       39 
40 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: dor-workflow-client
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 7.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Willy Mene
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire:
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date:  
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2024-01-16 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: activesupport
         
     | 
| 
         @@ -101,118 +101,6 @@ dependencies: 
     | 
|
| 
       101 
101 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       102 
102 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       103 
103 
     | 
    
         
             
                    version: '2.1'
         
     | 
| 
       104 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       105 
     | 
    
         
            -
              name: rake
         
     | 
| 
       106 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       107 
     | 
    
         
            -
                requirements:
         
     | 
| 
       108 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       109 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       111 
     | 
    
         
            -
              type: :development
         
     | 
| 
       112 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       113 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
     | 
    
         
            -
                requirements:
         
     | 
| 
       115 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       116 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       118 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       119 
     | 
    
         
            -
              name: rspec
         
     | 
| 
       120 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
     | 
    
         
            -
                requirements:
         
     | 
| 
       122 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       123 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
     | 
    
         
            -
                    version: '3.3'
         
     | 
| 
       125 
     | 
    
         
            -
              type: :development
         
     | 
| 
       126 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       127 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
     | 
    
         
            -
                requirements:
         
     | 
| 
       129 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       130 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
     | 
    
         
            -
                    version: '3.3'
         
     | 
| 
       132 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       133 
     | 
    
         
            -
              name: rubocop
         
     | 
| 
       134 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
     | 
    
         
            -
                requirements:
         
     | 
| 
       136 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       137 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
     | 
    
         
            -
                    version: '1.24'
         
     | 
| 
       139 
     | 
    
         
            -
              type: :development
         
     | 
| 
       140 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       141 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
     | 
    
         
            -
                requirements:
         
     | 
| 
       143 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       144 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       145 
     | 
    
         
            -
                    version: '1.24'
         
     | 
| 
       146 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       147 
     | 
    
         
            -
              name: rubocop-rake
         
     | 
| 
       148 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       149 
     | 
    
         
            -
                requirements:
         
     | 
| 
       150 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       151 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       153 
     | 
    
         
            -
              type: :development
         
     | 
| 
       154 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       155 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       156 
     | 
    
         
            -
                requirements:
         
     | 
| 
       157 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       158 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       159 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       160 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       161 
     | 
    
         
            -
              name: rubocop-rspec
         
     | 
| 
       162 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       163 
     | 
    
         
            -
                requirements:
         
     | 
| 
       164 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       165 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       166 
     | 
    
         
            -
                    version: '2.1'
         
     | 
| 
       167 
     | 
    
         
            -
              type: :development
         
     | 
| 
       168 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       169 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       170 
     | 
    
         
            -
                requirements:
         
     | 
| 
       171 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       172 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       173 
     | 
    
         
            -
                    version: '2.1'
         
     | 
| 
       174 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       175 
     | 
    
         
            -
              name: simplecov
         
     | 
| 
       176 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       177 
     | 
    
         
            -
                requirements:
         
     | 
| 
       178 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       179 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       180 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       181 
     | 
    
         
            -
              type: :development
         
     | 
| 
       182 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       183 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       184 
     | 
    
         
            -
                requirements:
         
     | 
| 
       185 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       186 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       187 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       188 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       189 
     | 
    
         
            -
              name: webmock
         
     | 
| 
       190 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       191 
     | 
    
         
            -
                requirements:
         
     | 
| 
       192 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       193 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       194 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       195 
     | 
    
         
            -
              type: :development
         
     | 
| 
       196 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       197 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       198 
     | 
    
         
            -
                requirements:
         
     | 
| 
       199 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       200 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       201 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       202 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       203 
     | 
    
         
            -
              name: yard
         
     | 
| 
       204 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       205 
     | 
    
         
            -
                requirements:
         
     | 
| 
       206 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       207 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       208 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       209 
     | 
    
         
            -
              type: :development
         
     | 
| 
       210 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       211 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       212 
     | 
    
         
            -
                requirements:
         
     | 
| 
       213 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       214 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       215 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       216 
104 
     | 
    
         
             
            description: Enables Ruby manipulation of the DOR Workflow Service via its REST API
         
     | 
| 
       217 
105 
     | 
    
         
             
            email:
         
     | 
| 
       218 
106 
     | 
    
         
             
            - wmene@stanford.edu
         
     | 
| 
         @@ -249,18 +137,18 @@ files: 
     | 
|
| 
       249 
137 
     | 
    
         
             
            - lib/dor/workflow/response/workflow.rb
         
     | 
| 
       250 
138 
     | 
    
         
             
            - lib/dor/workflow/response/workflows.rb
         
     | 
| 
       251 
139 
     | 
    
         
             
            - lib/dor/workflow_exception.rb
         
     | 
| 
       252 
     | 
    
         
            -
            - spec/ 
     | 
| 
       253 
     | 
    
         
            -
            - spec/ 
     | 
| 
       254 
     | 
    
         
            -
            - spec/ 
     | 
| 
      
 140 
     | 
    
         
            +
            - spec/dor/workflow/client/connection_factory_spec.rb
         
     | 
| 
      
 141 
     | 
    
         
            +
            - spec/dor/workflow/client/lifecycle_routes_spec.rb
         
     | 
| 
      
 142 
     | 
    
         
            +
            - spec/dor/workflow/client/requestor_spec.rb
         
     | 
| 
      
 143 
     | 
    
         
            +
            - spec/dor/workflow/client/status_spec.rb
         
     | 
| 
      
 144 
     | 
    
         
            +
            - spec/dor/workflow/client/version_routes_spec.rb
         
     | 
| 
      
 145 
     | 
    
         
            +
            - spec/dor/workflow/client/workflow_routes_spec.rb
         
     | 
| 
      
 146 
     | 
    
         
            +
            - spec/dor/workflow/client/workflow_template_spec.rb
         
     | 
| 
      
 147 
     | 
    
         
            +
            - spec/dor/workflow/client_spec.rb
         
     | 
| 
      
 148 
     | 
    
         
            +
            - spec/dor/workflow/response/process_spec.rb
         
     | 
| 
      
 149 
     | 
    
         
            +
            - spec/dor/workflow/response/workflow_spec.rb
         
     | 
| 
      
 150 
     | 
    
         
            +
            - spec/dor/workflow/response/workflows_spec.rb
         
     | 
| 
       255 
151 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       256 
     | 
    
         
            -
            - spec/workflow/client/connection_factory_spec.rb
         
     | 
| 
       257 
     | 
    
         
            -
            - spec/workflow/client/lifecycle_routes_spec.rb
         
     | 
| 
       258 
     | 
    
         
            -
            - spec/workflow/client/requestor_spec.rb
         
     | 
| 
       259 
     | 
    
         
            -
            - spec/workflow/client/status_spec.rb
         
     | 
| 
       260 
     | 
    
         
            -
            - spec/workflow/client/version_routes_spec.rb
         
     | 
| 
       261 
     | 
    
         
            -
            - spec/workflow/client/workflow_routes_spec.rb
         
     | 
| 
       262 
     | 
    
         
            -
            - spec/workflow/client/workflow_template_spec.rb
         
     | 
| 
       263 
     | 
    
         
            -
            - spec/workflow/client_spec.rb
         
     | 
| 
       264 
152 
     | 
    
         
             
            homepage: https://consul.stanford.edu/display/DOR/DOR+services#DORservices-initializeworkflow
         
     | 
| 
       265 
153 
     | 
    
         
             
            licenses: []
         
     | 
| 
       266 
154 
     | 
    
         
             
            metadata:
         
     | 
| 
         @@ -273,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       273 
161 
     | 
    
         
             
              requirements:
         
     | 
| 
       274 
162 
     | 
    
         
             
              - - ">="
         
     | 
| 
       275 
163 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       276 
     | 
    
         
            -
                  version: ' 
     | 
| 
      
 164 
     | 
    
         
            +
                  version: '3.0'
         
     | 
| 
       277 
165 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       278 
166 
     | 
    
         
             
              requirements:
         
     | 
| 
       279 
167 
     | 
    
         
             
              - - ">="
         
     | 
| 
         @@ -10,6 +10,8 @@ RSpec.describe Dor::Workflow::Client::LifecycleRoutes do 
     | 
|
| 
       10 
10 
     | 
    
         
             
              let(:druid) { 'druid:gv054hp4128' }
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              describe '#milestones' do
         
     | 
| 
      
 13 
     | 
    
         
            +
                subject(:milestones) { routes.milestones(druid: druid) }
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       13 
15 
     | 
    
         
             
                let(:ng_xml) { Nokogiri::XML(xml) }
         
     | 
| 
       14 
16 
     | 
    
         
             
                let(:xml) do
         
     | 
| 
       15 
17 
     | 
    
         
             
                  '<?xml version="1.0" encoding="UTF-8"?><lifecycle objectId="druid:gv054hp4128"><milestone date="2012-01-26T21:06:54-0800" version="2">published</milestone></lifecycle>'
         
     | 
| 
         @@ -19,8 +21,6 @@ RSpec.describe Dor::Workflow::Client::LifecycleRoutes do 
     | 
|
| 
       19 
21 
     | 
    
         
             
                  allow(routes).to receive(:query_lifecycle).and_return(ng_xml)
         
     | 
| 
       20 
22 
     | 
    
         
             
                end
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                subject(:milestones) { routes.milestones(druid: druid) }
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
24 
     | 
    
         
             
                it 'includes the version in with the milestones' do
         
     | 
| 
       25 
25 
     | 
    
         
             
                  expect(milestones.first[:milestone]).to eq('published')
         
     | 
| 
       26 
26 
     | 
    
         
             
                  expect(milestones.first[:version]).to eq('2')
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |