|
67 | 67 | let(:workflow) { 'accessionWF' }
|
68 | 68 | let(:repository) { 'dor' }
|
69 | 69 | let(:request_data) { workflow_create }
|
70 |
| - let(:client) { double(current_version: '1') } |
| 70 | + let(:client) { double(current_version: current_version) } |
| 71 | + let(:expected_count) { Nokogiri::XML(workflow_create).xpath('//process').count } |
71 | 72 |
|
72 | 73 | before do
|
73 | 74 | allow(Dor::Services::Client).to receive(:object).with(druid).and_return(client)
|
74 | 75 | end
|
75 |
| - it 'creates new workflows' do |
76 |
| - expect do |
77 |
| - put :create, body: request_data, params: { repo: repository, druid: druid, workflow: workflow, format: :xml } |
78 |
| - end.to change(WorkflowStep, :count) |
79 |
| - .by(Nokogiri::XML(workflow_create).xpath('//process').count) |
| 76 | + |
| 77 | + context 'when no workflows exist' do |
| 78 | + let(:current_version) { '1' } |
| 79 | + |
| 80 | + it 'creates new workflows' do |
| 81 | + expect do |
| 82 | + put :create, body: request_data, params: { repo: repository, druid: druid, workflow: workflow, format: :xml } |
| 83 | + end.to change(WorkflowStep, :count) |
| 84 | + .by(expected_count) |
| 85 | + end |
| 86 | + end |
| 87 | + |
| 88 | + context 'when some workflows exist' do |
| 89 | + let(:current_version) { '2' } |
| 90 | + before do |
| 91 | + WorkflowParser.new( |
| 92 | + workflow_create, |
| 93 | + druid: druid, |
| 94 | + repository: repository, |
| 95 | + version: '1' |
| 96 | + ).create_workflow_steps |
| 97 | + end |
| 98 | + |
| 99 | + it 'creates new workflows' do |
| 100 | + expect do |
| 101 | + put :create, body: request_data, params: { repo: repository, druid: druid, workflow: workflow, format: :xml } |
| 102 | + end.to change(WorkflowStep, :count) |
| 103 | + .by(expected_count) |
| 104 | + end |
80 | 105 | end
|
81 | 106 | end
|
82 | 107 | end
|
0 commit comments