dor-workflow-client 3.14.0 → 3.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a00ebf82eddf3b2cce94a9e1eb3d4eeb77e78fb7280131b5f8cd475e611ff1c
4
- data.tar.gz: fb8e8d16cebc1436e6747c5e601227c786ed007e54507f154dd3c248694f4fa0
3
+ metadata.gz: 999836d9819299630a505d4f09ec8e8fd9a054fe8a7718b09096a7e3aae3b4cb
4
+ data.tar.gz: 2aabfa8b7212d6b59a63b43c24b07d11d350ab25138b9888241a86d27a21282e
5
5
  SHA512:
6
- metadata.gz: 118a58574b972bd2c235103fcf71edc582a3e841c4641506a658881819a7a005ea356b3fef233d7733363cc83f35a3697a0c3ac783ef5d6d0d5e546a9336b29f
7
- data.tar.gz: a4721adc49f0130683b82cad84cc487a5e33f206a814151381a6c75448661472b6bda149473d382908c7c8093e636ffb44382b44bfa1e66d5d1b7fd0248133bb
6
+ metadata.gz: e79fc455a8757224ebc51ad4fb2c28d59801d0be5c7283cc393011ae374cb21ffb762bc52e21838317c4abb71b17ec79269c028aac0fc0dfcc425ecaaf7a904e
7
+ data.tar.gz: ca91b5a46d08c5a2519d958d18ee55f0d201c13c6856b542a9ff0d5bef58ba80ff82e3c253fc5e323bbc3fac6ba866e99d7945b2392e682b92fb151d68d840d1
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Workflow
5
5
  class Client
6
- VERSION = '3.14.0'
6
+ VERSION = '3.15.0'
7
7
  end
8
8
  end
9
9
  end
@@ -39,10 +39,19 @@ module Dor
39
39
  ng_xml.xpath('/workflow/process').empty?
40
40
  end
41
41
 
42
+ def complete?
43
+ ng_xml.xpath("/workflow/process[@version=#{version}]/@status").map(&:value).all? { |p| %w[skipped completed].include?(p) }
44
+ end
45
+
42
46
  attr_reader :xml
43
47
 
44
48
  private
45
49
 
50
+ # Return the max version in this workflow document
51
+ def version
52
+ ng_xml.xpath('/workflow/process/@version').map { |attr| attr.value.to_i }.max
53
+ end
54
+
46
55
  def workflow
47
56
  ng_xml.at_xpath('workflow')
48
57
  end
@@ -41,6 +41,33 @@ RSpec.describe Dor::Workflow::Response::Workflow do
41
41
  it { is_expected.to eq 'dor' }
42
42
  end
43
43
 
44
+ describe '#complete?' do
45
+ subject { instance.complete? }
46
+ context 'when all steps are complete' do
47
+ let(:xml) do
48
+ <<~XML
49
+ <workflow repository="dor" objectId="druid:mw971zk1113" id="assemblyWF">
50
+ <process version="1" laneId="default" elapsed="0.0" attempts="1" datetime="2013-02-18T14:40:25-0800" status="completed" name="start-assembly"/>
51
+ <process version="1" laneId="default" elapsed="0.509" attempts="1" datetime="2013-02-18T14:42:24-0800" status="completed" name="jp2-create"/>
52
+ </workflow>
53
+ XML
54
+ end
55
+ it { is_expected.to be true }
56
+ end
57
+
58
+ context 'when some steps are not complete' do
59
+ let(:xml) do
60
+ <<~XML
61
+ <workflow repository="dor" objectId="druid:mw971zk1113" id="assemblyWF">
62
+ <process version="1" laneId="default" elapsed="0.0" attempts="1" datetime="2013-02-18T14:40:25-0800" status="completed" name="start-assembly"/>
63
+ <process version="1" laneId="default" elapsed="0.509" attempts="1" datetime="2013-02-18T14:42:24-0800" status="waiting" name="jp2-create"/>
64
+ </workflow>
65
+ XML
66
+ end
67
+ it { is_expected.to be false }
68
+ end
69
+ end
70
+
44
71
  describe '#active?' do
45
72
  subject { instance.active_for?(version: 2) }
46
73
 
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: 3.14.0
4
+ version: 3.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willy Mene