enju_biblio 0.3.8 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/content_types_controller.rb +1 -1
  3. data/app/controllers/item_custom_properties_controller.rb +69 -0
  4. data/app/controllers/items_controller.rb +2 -3
  5. data/app/controllers/manifestation_custom_properties_controller.rb +69 -0
  6. data/app/controllers/manifestations_controller.rb +12 -15
  7. data/app/controllers/resource_import_results_controller.rb +6 -2
  8. data/app/models/agent.rb +6 -6
  9. data/app/models/agent_import_file.rb +7 -7
  10. data/app/models/agent_type.rb +0 -1
  11. data/app/models/carrier_type.rb +0 -1
  12. data/app/models/content_type.rb +0 -1
  13. data/app/models/form_of_work.rb +1 -2
  14. data/app/models/frequency.rb +0 -1
  15. data/app/models/identifier_type.rb +0 -1
  16. data/app/models/item.rb +15 -16
  17. data/app/models/item_custom_property.rb +18 -0
  18. data/app/models/item_custom_value.rb +17 -0
  19. data/app/models/license.rb +0 -1
  20. data/app/models/manifestation.rb +54 -22
  21. data/app/models/manifestation_custom_property.rb +18 -0
  22. data/app/models/manifestation_custom_value.rb +17 -0
  23. data/app/models/medium_of_performance.rb +1 -2
  24. data/app/models/picture_file.rb +0 -2
  25. data/app/models/resource_export_file.rb +4 -2
  26. data/app/models/resource_import_file.rb +157 -67
  27. data/app/policies/item_custom_property_policy.rb +21 -0
  28. data/app/policies/manifestation_custom_property_policy.rb +21 -0
  29. data/app/views/agent_import_results/index.txt.ruby +5 -0
  30. data/app/views/agent_relationship_types/_form.html.erb +1 -1
  31. data/app/views/agent_types/_form.html.erb +1 -1
  32. data/app/views/carrier_types/_form.html.erb +1 -1
  33. data/app/views/create_types/_form.html.erb +1 -1
  34. data/app/views/form_of_works/_form.html.erb +1 -1
  35. data/app/views/frequencies/_form.html.erb +1 -1
  36. data/app/views/item_custom_properties/_form.html.erb +32 -0
  37. data/app/views/item_custom_properties/edit.html.erb +13 -0
  38. data/app/views/item_custom_properties/index.html.erb +43 -0
  39. data/app/views/item_custom_properties/new.html.erb +12 -0
  40. data/app/views/item_custom_properties/show.html.erb +28 -0
  41. data/app/views/items/_form.html.erb +13 -10
  42. data/app/views/items/show.html.erb +3 -4
  43. data/app/views/licenses/_form.html.erb +1 -1
  44. data/app/views/manifestation_custom_properties/_form.html.erb +32 -0
  45. data/app/views/manifestation_custom_properties/edit.html.erb +13 -0
  46. data/app/views/manifestation_custom_properties/index.html.erb +43 -0
  47. data/app/views/manifestation_custom_properties/new.html.erb +12 -0
  48. data/app/views/manifestation_custom_properties/show.html.erb +28 -0
  49. data/app/views/manifestation_relationship_types/_form.html.erb +1 -1
  50. data/app/views/manifestations/_export_detail.html.erb +1 -0
  51. data/app/views/manifestations/_export_list.html.erb +1 -0
  52. data/app/views/manifestations/_form.html.erb +18 -10
  53. data/app/views/manifestations/_show_detail_librarian.html.erb +9 -3
  54. data/app/views/manifestations/_show_detail_user.html.erb +8 -0
  55. data/app/views/manifestations/show.json.jbuilder +2 -0
  56. data/app/views/medium_of_performances/_form.html.erb +1 -1
  57. data/app/views/picture_files/edit.html.erb +4 -0
  58. data/app/views/produce_types/_form.html.erb +1 -1
  59. data/app/views/realize_types/_form.html.erb +1 -1
  60. data/app/views/resource_import_results/index.txt.ruby +5 -0
  61. data/app/views/series_statement_merges/_form.html.erb +1 -1
  62. data/config/locales/translation_en.yml +22 -8
  63. data/config/locales/translation_ja.yml +22 -8
  64. data/config/routes.rb +2 -0
  65. data/db/migrate/20081027150907_create_picture_files.rb +0 -2
  66. data/db/migrate/20200425072340_create_manifestation_custom_properties.rb +12 -0
  67. data/db/migrate/20200425072349_create_item_custom_properties.rb +12 -0
  68. data/db/migrate/20200425074758_create_manifestation_custom_values.rb +12 -0
  69. data/db/migrate/20200425074822_create_item_custom_values.rb +12 -0
  70. data/lib/enju_biblio/version.rb +1 -1
  71. data/spec/cassette_library/ResourceImportFile/when_its_mode_is_create_/when_it_is_written_in_utf-8/should_import_custom_values.yml +121 -0
  72. data/spec/cassette_library/resource_import_results/index_txt_ruby/renders_a_list_of_resource_import_results.yml +121 -0
  73. data/spec/controllers/content_types_controller_spec.rb +1 -1
  74. data/spec/controllers/item_custom_properties_controller_spec.rb +449 -0
  75. data/spec/controllers/items_controller_spec.rb +22 -25
  76. data/spec/controllers/manifestation_custom_properties_controller_spec.rb +449 -0
  77. data/spec/controllers/manifestations_controller_spec.rb +20 -23
  78. data/spec/dummy/db/schema.rb +43 -12
  79. data/spec/factories/item_custom_property.rb +6 -0
  80. data/spec/factories/item_custom_value.rb +6 -0
  81. data/spec/factories/manifestation_custom_property.rb +6 -0
  82. data/spec/factories/manifestation_custom_value.rb +6 -0
  83. data/spec/fixtures/creates.yml +2 -0
  84. data/spec/fixtures/item_custom_properties.yml +24 -0
  85. data/spec/fixtures/library_groups.yml +29 -15
  86. data/spec/fixtures/manifestation_custom_properties.yml +24 -0
  87. data/spec/fixtures/picture_files.yml +0 -2
  88. data/spec/fixtures/produces.yml +2 -0
  89. data/spec/fixtures/realizes.yml +2 -0
  90. data/spec/fixtures/resource_import_results.yml +2 -2
  91. data/spec/models/item_custom_property_spec.rb +18 -0
  92. data/spec/models/item_custom_value_spec.rb +17 -0
  93. data/spec/models/manifestation_custom_property_spec.rb +18 -0
  94. data/spec/models/manifestation_custom_value_spec.rb +17 -0
  95. data/spec/models/manifestation_spec.rb +11 -21
  96. data/spec/models/picture_file_spec.rb +0 -2
  97. data/spec/models/resource_export_file_spec.rb +61 -8
  98. data/spec/models/resource_import_file_spec.rb +43 -13
  99. data/spec/requests/item_custom_properties_spec.rb +129 -0
  100. data/spec/requests/manifestation_custom_properties_spec.rb +129 -0
  101. data/spec/routing/item_custom_properties_routing_spec.rb +38 -0
  102. data/spec/routing/manifestation_custom_properties_routing_spec.rb +38 -0
  103. data/spec/system/items_spec.rb +12 -0
  104. data/spec/system/manifestations_spec.rb +12 -0
  105. data/spec/views/agent_import_results/index.html.erb_spec.rb +29 -0
  106. data/spec/views/agent_import_results/index.txt.ruby_spec.rb +20 -0
  107. data/spec/views/agent_import_results/show.html.erb_spec.rb +24 -0
  108. data/spec/views/item_custom_properties/edit.html.erb_spec.rb +21 -0
  109. data/spec/views/item_custom_properties/index.html.erb_spec.rb +25 -0
  110. data/spec/views/item_custom_properties/new.html.erb_spec.rb +21 -0
  111. data/spec/views/item_custom_properties/show.html.erb_spec.rb +16 -0
  112. data/spec/views/manifestation_custom_properties/edit.html.erb_spec.rb +21 -0
  113. data/spec/views/manifestation_custom_properties/index.html.erb_spec.rb +25 -0
  114. data/spec/views/manifestation_custom_properties/new.html.erb_spec.rb +21 -0
  115. data/spec/views/manifestation_custom_properties/show.html.erb_spec.rb +16 -0
  116. data/spec/views/manifestations/show.json.jbuilder_spec.rb +16 -0
  117. data/spec/views/manifestations/show.txt.ruby_spec.rb +1 -1
  118. data/spec/views/resource_import_results/index.txt.ruby_spec.rb +22 -0
  119. data/spec/views/resource_import_results/show.html.erb_spec.rb +1 -1
  120. metadata +118 -37
  121. data/app/models/custom_property.rb +0 -17
  122. data/app/views/agent_import_results/index.txt.erb +0 -3
  123. data/app/views/items/_custom_property_fields.html.erb +0 -7
  124. data/app/views/manifestations/_custom_property_fields.html.erb +0 -7
  125. data/app/views/resource_import_results/index.txt.erb +0 -3
  126. data/db/migrate/20191219122214_create_custom_properties.rb +0 -12
  127. data/spec/factories/custom_property.rb +0 -18
  128. data/spec/models/custom_property_spec.rb +0 -18
  129. data/spec/system/custom_properties_spec.rb +0 -84
@@ -265,19 +265,6 @@ describe ItemsController do
265
265
  assigns(:item).manifestation.should_not be_nil
266
266
  expect(response).to redirect_to(item_url(assigns(:item)))
267
267
  end
268
-
269
- it 'assigns custom properties to @item' do
270
- item = FactoryBot.create(:item_custom_property).resource
271
- custom_properties_attrs = {
272
- custom_properties_attributes: [{label: 'test', value: 'テスト'}]
273
- }
274
- put :update, params: {
275
- id: item.id, item: @attrs.merge(custom_properties_attrs)
276
- }
277
- expect(assigns(:item)).to eq item
278
- expect(assigns(:item).custom_properties.map{|property| property.label}).to eq ['custom property 1', 'test']
279
- expect(assigns(:item).custom_properties.map{|property| property.value}).to eq ['カスタム項目 1', 'テスト']
280
- end
281
268
  end
282
269
 
283
270
  describe 'with invalid params' do
@@ -320,6 +307,12 @@ describe ItemsController do
320
307
  post :create, params: { item: @attrs }
321
308
  expect(response).to redirect_to(item_url(assigns(:item)))
322
309
  end
310
+
311
+ it 'accepts custom values' do
312
+ post :create, params: { item: @attrs.merge(item_custom_values_attributes: Array.new(3){FactoryBot.attributes_for(:item_custom_value, item_custom_property_id: FactoryBot.create(:item_custom_property).id)}) }
313
+ expect(assigns(:item)).to be_valid
314
+ expect(assigns(:item).item_custom_values.count).to eq 3
315
+ end
323
316
  end
324
317
 
325
318
  describe 'with invalid params' do
@@ -436,6 +429,22 @@ describe ItemsController do
436
429
  expect(assigns(:item)).to eq(@item)
437
430
  expect(response).to redirect_to(@item)
438
431
  end
432
+
433
+ it 'accepts custom values' do
434
+ @item.item_custom_values << FactoryBot.build(:item_custom_value)
435
+ put :update, params: { id: @item.id, item: @attrs.merge(item_custom_values_attributes: [{id: @item.item_custom_values.first.id, value: 'test'}]) }
436
+ expect(assigns(:item)).to be_valid
437
+ expect(assigns(:item).item_custom_values.count).to eq 1
438
+ expect(assigns(:item).item_custom_values.first.value).to eq 'test'
439
+ end
440
+
441
+ it 'accepts custom values when the value is empty' do
442
+ @item.item_custom_values << FactoryBot.build(:item_custom_value)
443
+ put :update, params: { id: @item.id, item: @attrs.merge(item_custom_values_attributes: [{id: @item.item_custom_values.first.id, value: ''}]) }
444
+ expect(assigns(:item)).to be_valid
445
+ expect(assigns(:item).item_custom_values.count).to eq 1
446
+ expect(assigns(:item).item_custom_values.first.value).to eq ''
447
+ end
439
448
  end
440
449
 
441
450
  describe 'with invalid params' do
@@ -448,18 +457,6 @@ describe ItemsController do
448
457
  put :update, params: { id: @item, item: @invalid_attrs }
449
458
  expect(response).to render_template('edit')
450
459
  end
451
-
452
- it 'assigns custom properties to @item' do
453
- item = FactoryBot.create(:item_custom_property).resource
454
- custom_properties_attrs = {
455
- custom_properties_attributes: [{name: 'test', value: 'テスト'}]
456
- }
457
- put :update, params: {
458
- id: item.id, item: @invalid_attrs.merge(custom_properties_attrs)
459
- }
460
- expect(assigns(:item).custom_properties.count).to eq 1
461
- expect(assigns(:item)).to_not be_valid
462
- end
463
460
  end
464
461
  end
465
462
 
@@ -0,0 +1,449 @@
1
+ require 'rails_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe ManifestationCustomPropertiesController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ def valid_attributes
9
+ @attrs = FactoryBot.attributes_for(:manifestation_custom_property)
10
+ end
11
+
12
+ describe 'GET index' do
13
+ before(:each) do
14
+ FactoryBot.create(:manifestation_custom_property)
15
+ end
16
+
17
+ describe 'When logged in as Administrator' do
18
+ login_fixture_admin
19
+
20
+ it 'assigns all manifestation_custom_properties as @manifestation_custom_properties' do
21
+ get :index
22
+ expect(assigns(:manifestation_custom_properties)).to eq(ManifestationCustomProperty.order(:position))
23
+ end
24
+ end
25
+
26
+ describe 'When logged in as Librarian' do
27
+ login_fixture_librarian
28
+
29
+ it 'assigns all manifestation_custom_properties as @manifestation_custom_properties' do
30
+ get :index
31
+ expect(assigns(:manifestation_custom_properties)).to eq(ManifestationCustomProperty.order(:position))
32
+ end
33
+ end
34
+
35
+ describe 'When logged in as User' do
36
+ login_fixture_user
37
+
38
+ it 'assigns all manifestation_custom_properties as @manifestation_custom_properties' do
39
+ get :index
40
+ expect(assigns(:manifestation_custom_properties)).to eq nil
41
+ end
42
+ end
43
+
44
+ describe 'When not logged in' do
45
+ it 'assigns all manifestation_custom_properties as @manifestation_custom_properties' do
46
+ get :index
47
+ expect(assigns(:manifestation_custom_properties)).to eq nil
48
+ end
49
+ end
50
+ end
51
+
52
+ describe 'GET show' do
53
+ describe 'When logged in as Administrator' do
54
+ login_fixture_admin
55
+
56
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
57
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
58
+ get :show, params: { id: manifestation_custom_property.id }
59
+ expect(assigns(:manifestation_custom_property)).to eq(manifestation_custom_property)
60
+ end
61
+ end
62
+
63
+ describe 'When logged in as Librarian' do
64
+ login_fixture_librarian
65
+
66
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
67
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
68
+ get :show, params: { id: manifestation_custom_property.id }
69
+ expect(assigns(:manifestation_custom_property)).to eq(manifestation_custom_property)
70
+ end
71
+ end
72
+
73
+ describe 'When logged in as User' do
74
+ login_fixture_user
75
+
76
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
77
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
78
+ get :show, params: { id: manifestation_custom_property.id }
79
+ expect(assigns(:manifestation_custom_property)).to eq(manifestation_custom_property)
80
+ end
81
+ end
82
+
83
+ describe 'When not logged in' do
84
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
85
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
86
+ get :show, params: { id: manifestation_custom_property.id }
87
+ expect(assigns(:manifestation_custom_property)).to eq(manifestation_custom_property)
88
+ end
89
+ end
90
+ end
91
+
92
+ describe 'GET new' do
93
+ describe 'When logged in as Administrator' do
94
+ login_fixture_admin
95
+
96
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
97
+ get :new
98
+ expect(assigns(:manifestation_custom_property)).to be_a_new(ManifestationCustomProperty)
99
+ expect(response).to be_successful
100
+ end
101
+ end
102
+
103
+ describe 'When logged in as Librarian' do
104
+ login_fixture_librarian
105
+
106
+ it 'should not assign the requested manifestation_custom_property as @manifestation_custom_property' do
107
+ get :new
108
+ expect(assigns(:manifestation_custom_property)).to be_nil
109
+ expect(response).to be_forbidden
110
+ end
111
+ end
112
+
113
+ describe 'When logged in as User' do
114
+ login_fixture_user
115
+
116
+ it 'should not assign the requested manifestation_custom_property as @manifestation_custom_property' do
117
+ get :new
118
+ expect(assigns(:manifestation_custom_property)).to be_nil
119
+ expect(response).to be_forbidden
120
+ end
121
+ end
122
+
123
+ describe 'When not logged in' do
124
+ it 'should not assign the requested manifestation_custom_property as @manifestation_custom_property' do
125
+ get :new
126
+ expect(assigns(:manifestation_custom_property)).to be_nil
127
+ expect(response).to redirect_to(new_user_session_url)
128
+ end
129
+ end
130
+ end
131
+
132
+ describe 'GET edit' do
133
+ describe 'When logged in as Administrator' do
134
+ login_fixture_admin
135
+
136
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
137
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
138
+ get :edit, params: { id: manifestation_custom_property.id }
139
+ expect(assigns(:manifestation_custom_property)).to eq(manifestation_custom_property)
140
+ end
141
+ end
142
+
143
+ describe 'When logged in as Librarian' do
144
+ login_fixture_librarian
145
+
146
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
147
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
148
+ get :edit, params: { id: manifestation_custom_property.id }
149
+ expect(assigns(:manifestation_custom_property)).to eq(manifestation_custom_property)
150
+ end
151
+ end
152
+
153
+ describe 'When logged in as User' do
154
+ login_fixture_user
155
+
156
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
157
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
158
+ get :edit, params: { id: manifestation_custom_property.id }
159
+ expect(response).to be_forbidden
160
+ end
161
+ end
162
+
163
+ describe 'When not logged in' do
164
+ it 'should not assign the requested manifestation_custom_property as @manifestation_custom_property' do
165
+ manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
166
+ get :edit, params: { id: manifestation_custom_property.id }
167
+ expect(response).to redirect_to(new_user_session_url)
168
+ end
169
+ end
170
+ end
171
+
172
+ describe 'POST create' do
173
+ before(:each) do
174
+ @attrs = valid_attributes
175
+ @invalid_attrs = { name: '' }
176
+ end
177
+
178
+ describe 'When logged in as Administrator' do
179
+ login_fixture_admin
180
+
181
+ describe 'with valid params' do
182
+ it 'assigns a newly created manifestation_custom_property as @manifestation_custom_property' do
183
+ post :create, params: { manifestation_custom_property: @attrs }
184
+ expect(assigns(:manifestation_custom_property)).to be_valid
185
+ end
186
+
187
+ it 'redirects to the created manifestation' do
188
+ post :create, params: { manifestation_custom_property: @attrs }
189
+ expect(response).to redirect_to(assigns(:manifestation_custom_property))
190
+ end
191
+ end
192
+
193
+ describe 'with invalid params' do
194
+ it 'assigns a newly created but unsaved manifestation_custom_property as @manifestation_custom_property' do
195
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
196
+ expect(assigns(:manifestation_custom_property)).not_to be_valid
197
+ end
198
+
199
+ it "re-renders the 'new' template" do
200
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
201
+ expect(response).to render_template('new')
202
+ end
203
+ end
204
+ end
205
+
206
+ describe 'When logged in as Librarian' do
207
+ login_fixture_librarian
208
+
209
+ describe 'with valid params' do
210
+ it 'assigns a newly created manifestation_custom_property as @manifestation_custom_property' do
211
+ post :create, params: { manifestation_custom_property: @attrs }
212
+ expect(assigns(:manifestation_custom_property)).to be_nil
213
+ end
214
+
215
+ it 'redirects to the created manifestation' do
216
+ post :create, params: { manifestation_custom_property: @attrs }
217
+ expect(response).to be_forbidden
218
+ end
219
+ end
220
+
221
+ describe 'with invalid params' do
222
+ it 'assigns a newly created but unsaved manifestation_custom_property as @manifestation_custom_property' do
223
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
224
+ expect(assigns(:manifestation_custom_property)).to be_nil
225
+ end
226
+
227
+ it "re-renders the 'new' template" do
228
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
229
+ expect(response).to be_forbidden
230
+ end
231
+ end
232
+ end
233
+
234
+ describe 'When logged in as User' do
235
+ login_fixture_user
236
+
237
+ describe 'with valid params' do
238
+ it 'assigns a newly created manifestation_custom_property as @manifestation_custom_property' do
239
+ post :create, params: { manifestation_custom_property: @attrs }
240
+ expect(assigns(:manifestation_custom_property)).to be_nil
241
+ end
242
+
243
+ it 'should be forbidden' do
244
+ post :create, params: { manifestation_custom_property: @attrs }
245
+ expect(response).to be_forbidden
246
+ end
247
+ end
248
+
249
+ describe 'with invalid params' do
250
+ it 'assigns a newly created but unsaved manifestation_custom_property as @manifestation_custom_property' do
251
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
252
+ expect(assigns(:manifestation_custom_property)).to be_nil
253
+ end
254
+
255
+ it 'should be forbidden' do
256
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
257
+ expect(response).to be_forbidden
258
+ end
259
+ end
260
+ end
261
+
262
+ describe 'When not logged in' do
263
+ describe 'with valid params' do
264
+ it 'assigns a newly created manifestation_custom_property as @manifestation_custom_property' do
265
+ post :create, params: { manifestation_custom_property: @attrs }
266
+ expect(assigns(:manifestation_custom_property)).to be_nil
267
+ end
268
+
269
+ it 'should be forbidden' do
270
+ post :create, params: { manifestation_custom_property: @attrs }
271
+ expect(response).to redirect_to(new_user_session_url)
272
+ end
273
+ end
274
+
275
+ describe 'with invalid params' do
276
+ it 'assigns a newly created but unsaved manifestation_custom_property as @manifestation_custom_property' do
277
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
278
+ expect(assigns(:manifestation_custom_property)).to be_nil
279
+ end
280
+
281
+ it 'should be forbidden' do
282
+ post :create, params: { manifestation_custom_property: @invalid_attrs }
283
+ expect(response).to redirect_to(new_user_session_url)
284
+ end
285
+ end
286
+ end
287
+ end
288
+
289
+ describe 'PUT update' do
290
+ before(:each) do
291
+ @manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
292
+ @attrs = valid_attributes
293
+ @invalid_attrs = { name: '' }
294
+ end
295
+
296
+ describe 'When logged in as Administrator' do
297
+ login_fixture_admin
298
+
299
+ describe 'with valid params' do
300
+ it 'updates the requested manifestation_custom_property' do
301
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
302
+ end
303
+
304
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
305
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
306
+ expect(assigns(:manifestation_custom_property)).to eq(@manifestation_custom_property)
307
+ expect(response).to redirect_to(@manifestation_custom_property)
308
+ end
309
+ end
310
+
311
+ describe 'with invalid params' do
312
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
313
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @invalid_attrs }
314
+ expect(response).to render_template('edit')
315
+ end
316
+ end
317
+
318
+ it 'moves its position when specified' do
319
+ manifestation_custom_property = ManifestationCustomProperty.create! valid_attributes
320
+ position = manifestation_custom_property.position
321
+ put :update, params: { id: manifestation_custom_property.id, move: 'higher' }
322
+ expect(response).to redirect_to manifestation_custom_properties_url
323
+ assigns(:manifestation_custom_property).reload.position.should eq position - 1
324
+ end
325
+ end
326
+
327
+ describe 'When logged in as Librarian' do
328
+ login_fixture_librarian
329
+
330
+ describe 'with valid params' do
331
+ it 'updates the requested manifestation_custom_property' do
332
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
333
+ end
334
+
335
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
336
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
337
+ expect(assigns(:manifestation_custom_property)).to eq @manifestation_custom_property
338
+ expect(response).to be_forbidden
339
+ end
340
+ end
341
+
342
+ describe 'with invalid params' do
343
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
344
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @invalid_attrs }
345
+ expect(response).to be_forbidden
346
+ end
347
+ end
348
+ end
349
+
350
+ describe 'When logged in as User' do
351
+ login_fixture_user
352
+
353
+ describe 'with valid params' do
354
+ it 'updates the requested manifestation_custom_property' do
355
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
356
+ end
357
+
358
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
359
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
360
+ expect(assigns(:manifestation_custom_property)).to eq(@manifestation_custom_property)
361
+ expect(response).to be_forbidden
362
+ end
363
+ end
364
+
365
+ describe 'with invalid params' do
366
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
367
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @invalid_attrs }
368
+ expect(response).to be_forbidden
369
+ end
370
+ end
371
+ end
372
+
373
+ describe 'When not logged in' do
374
+ describe 'with valid params' do
375
+ it 'updates the requested manifestation_custom_property' do
376
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
377
+ end
378
+
379
+ it 'should be forbidden' do
380
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @attrs }
381
+ expect(response).to redirect_to(new_user_session_url)
382
+ end
383
+ end
384
+
385
+ describe 'with invalid params' do
386
+ it 'assigns the requested manifestation_custom_property as @manifestation_custom_property' do
387
+ put :update, params: { id: @manifestation_custom_property.id, manifestation_custom_property: @invalid_attrs }
388
+ expect(response).to redirect_to(new_user_session_url)
389
+ end
390
+ end
391
+ end
392
+ end
393
+
394
+ describe 'DELETE destroy' do
395
+ before(:each) do
396
+ @manifestation_custom_property = FactoryBot.create(:manifestation_custom_property)
397
+ end
398
+
399
+ describe 'When logged in as Administrator' do
400
+ login_fixture_admin
401
+
402
+ it 'destroys the requested manifestation_custom_property' do
403
+ delete :destroy, params: { id: @manifestation_custom_property.id }
404
+ end
405
+
406
+ it 'redirects to the manifestation_custom_properties list' do
407
+ delete :destroy, params: { id: @manifestation_custom_property.id }
408
+ expect(response).to redirect_to(manifestation_custom_properties_url)
409
+ end
410
+ end
411
+
412
+ describe 'When logged in as Librarian' do
413
+ login_fixture_librarian
414
+
415
+ it 'destroys the requested manifestation_custom_property' do
416
+ delete :destroy, params: { id: @manifestation_custom_property.id }
417
+ end
418
+
419
+ it 'should be forbidden' do
420
+ delete :destroy, params: { id: @manifestation_custom_property.id }
421
+ expect(response).to be_forbidden
422
+ end
423
+ end
424
+
425
+ describe 'When logged in as User' do
426
+ login_fixture_user
427
+
428
+ it 'destroys the requested manifestation_custom_property' do
429
+ delete :destroy, params: { id: @manifestation_custom_property.id }
430
+ end
431
+
432
+ it 'should be forbidden' do
433
+ delete :destroy, params: { id: @manifestation_custom_property.id }
434
+ expect(response).to be_forbidden
435
+ end
436
+ end
437
+
438
+ describe 'When not logged in' do
439
+ it 'destroys the requested manifestation_custom_property' do
440
+ delete :destroy, params: { id: @manifestation_custom_property.id }
441
+ end
442
+
443
+ it 'should be forbidden' do
444
+ delete :destroy, params: { id: @manifestation_custom_property.id }
445
+ expect(response).to redirect_to(new_user_session_url)
446
+ end
447
+ end
448
+ end
449
+ end