|
7 | 7 | let(:solr_conn) { blacklight_config.repository_class.new(blacklight_config).connection } |
8 | 8 | let(:druid) { 'druid:hj185xx2222' } |
9 | 9 | let(:version_client) { instance_double(Dor::Services::Client::ObjectVersion, current: 1, inventory: [version1]) } |
10 | | - let(:user_version_client) { instance_double(Dor::Services::Client::UserVersion, inventory: [user_version1], find: cocina_object, solr: solr_doc, update: true) } |
| 10 | + let(:user_version_client) { instance_double(Dor::Services::Client::UserVersion, inventory:, find: cocina_object, solr: solr_doc, update: true) } |
| 11 | + let(:inventory) { [user_version1] } |
11 | 12 | let(:release_tags_client) { instance_double(Dor::Services::Client::ReleaseTags, list: release_tags_list) } |
12 | 13 | let(:version1) { Dor::Services::Client::ObjectVersion::Version.new } |
13 | 14 | let(:user_version1) { Dor::Services::Client::UserVersion::Version.new(version: 4, userVersion: 2, withdrawable:, restorable:) } |
|
237 | 238 | end |
238 | 239 | end |
239 | 240 |
|
| 241 | + context 'when moving a version and only one target' do |
| 242 | + let(:inventory) do |
| 243 | + [ |
| 244 | + Dor::Services::Client::UserVersion::Version.new(version: 1, userVersion: 1, withdrawable: true, restorable: false), |
| 245 | + Dor::Services::Client::UserVersion::Version.new(version: 3, userVersion: 2, withdrawable: true, restorable: false) |
| 246 | + ] |
| 247 | + end |
| 248 | + |
| 249 | + it 'moves' do |
| 250 | + visit item_user_version_path(item_id: druid, user_version_id: 1) |
| 251 | + click_link('Move') |
| 252 | + expect(page).to have_content('Move user version') |
| 253 | + expect(page).to have_content('Move user version 1 to version 2.') |
| 254 | + click_button('Submit') |
| 255 | + expect(page).to have_content('Moved user version.') |
| 256 | + |
| 257 | + expect(user_version_client).to have_received(:update) |
| 258 | + .with(user_version: Dor::Services::Client::UserVersion::Version.new(userVersion: '1', version: '2')) |
| 259 | + end |
| 260 | + end |
| 261 | + |
| 262 | + context 'when moving a version and multiple targets' do |
| 263 | + let(:inventory) do |
| 264 | + [ |
| 265 | + Dor::Services::Client::UserVersion::Version.new(version: 1, userVersion: 1, withdrawable: true, restorable: false), |
| 266 | + Dor::Services::Client::UserVersion::Version.new(version: 4, userVersion: 2, withdrawable: true, restorable: false) |
| 267 | + ] |
| 268 | + end |
| 269 | + |
| 270 | + it 'moves' do |
| 271 | + visit item_user_version_path(item_id: druid, user_version_id: 1) |
| 272 | + click_link('Move') |
| 273 | + expect(page).to have_content('Move user version') |
| 274 | + select('3', from: 'Move user version 1 to version:') |
| 275 | + click_button('Submit') |
| 276 | + expect(page).to have_content('Moved user version.') |
| 277 | + |
| 278 | + expect(user_version_client).to have_received(:update) |
| 279 | + .with(user_version: Dor::Services::Client::UserVersion::Version.new(userVersion: '1', version: '3')) |
| 280 | + end |
| 281 | + end |
| 282 | + |
240 | 283 | context 'when viewing an unknown version' do |
241 | 284 | before do |
242 | 285 | allow(user_version_client).to receive(:find).and_raise(Dor::Services::Client::NotFoundResponse) |
|
0 commit comments