enju_circulation 0.2.0 → 0.2.1
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/app/helpers/items_helper.rb +1 -1
- data/app/models/checked_item.rb +2 -1
- data/app/views/carrier_types/_carrier_type_has_checkout_type_fields.html.erb +1 -1
- data/lib/enju_circulation/version.rb +1 -1
- data/lib/tasks/enju_circulation_tasks.rake +3 -2
- data/spec/controllers/carrier_type_has_checkout_types_controller_spec.rb +152 -152
- data/spec/controllers/checked_items_controller_spec.rb +135 -135
- data/spec/controllers/checkins_controller_spec.rb +161 -161
- data/spec/controllers/checkout_types_controller_spec.rb +152 -152
- data/spec/controllers/checkouts_controller_spec.rb +103 -103
- data/spec/controllers/circulation_statuses_controller_spec.rb +152 -152
- data/spec/controllers/item_has_use_restrictions_controller_spec.rb +152 -152
- data/spec/controllers/lending_policies_controller_spec.rb +150 -150
- data/spec/controllers/manifestation_checkout_stats_controller_spec.rb +152 -152
- data/spec/controllers/manifestation_reserve_stats_controller_spec.rb +152 -152
- data/spec/controllers/profiles_controller_spec.rb +4 -4
- data/spec/controllers/reserves_controller_spec.rb +249 -249
- data/spec/controllers/use_restrictions_controller_spec.rb +153 -153
- data/spec/controllers/user_checkout_stats_controller_spec.rb +152 -152
- data/spec/controllers/user_group_has_checkout_types_controller_spec.rb +150 -150
- data/spec/controllers/user_reserve_stats_controller_spec.rb +152 -152
- data/spec/dummy/db/schema.rb +12 -2
- data/spec/fixtures/checked_items.yml +2 -1
- data/spec/helpers/items_helper_spec.rb +0 -1
- data/spec/models/checked_item_spec.rb +2 -1
- metadata +3 -17
@@ -3,397 +3,397 @@ require 'rails_helper'
|
|
3
3
|
describe CheckedItemsController do
|
4
4
|
fixtures :all
|
5
5
|
|
6
|
-
describe
|
7
|
-
describe
|
6
|
+
describe 'GET index' do
|
7
|
+
describe 'When logged in as Administrator' do
|
8
8
|
login_fixture_admin
|
9
9
|
|
10
|
-
it
|
10
|
+
it 'assigns all checked_items as @checked_items' do
|
11
11
|
get :index
|
12
12
|
assigns(:checked_items).should_not be_empty
|
13
13
|
response.should be_success
|
14
14
|
end
|
15
15
|
|
16
|
-
it
|
17
|
-
get :index, :
|
16
|
+
it 'should get index without basket_id' do
|
17
|
+
get :index, item_id: 1
|
18
18
|
assigns(:checked_items).should_not be_empty
|
19
19
|
response.should be_success
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
describe
|
23
|
+
describe 'When logged in as Librarian' do
|
24
24
|
login_fixture_librarian
|
25
25
|
|
26
|
-
it
|
26
|
+
it 'should be forbidden' do
|
27
27
|
get :index
|
28
28
|
assigns(:checked_items).should_not be_empty
|
29
29
|
response.should be_success
|
30
30
|
end
|
31
31
|
|
32
|
-
describe
|
33
|
-
it
|
34
|
-
get :index, :
|
32
|
+
describe 'When basket is specified' do
|
33
|
+
it 'assigns checked_items as @checked_items' do
|
34
|
+
get :index, basket_id: 1
|
35
35
|
assigns(:checked_items).should_not be_empty
|
36
36
|
response.should be_success
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe 'When logged in as User' do
|
42
42
|
login_fixture_user
|
43
43
|
|
44
|
-
it
|
44
|
+
it 'assigns empty as @checked_items' do
|
45
45
|
get :index
|
46
46
|
assigns(:checked_items).should be_nil
|
47
47
|
response.should be_forbidden
|
48
48
|
end
|
49
49
|
|
50
|
-
it
|
51
|
-
get :index, :
|
50
|
+
it 'should not get index' do
|
51
|
+
get :index, basket_id: 3, item_id: 3
|
52
52
|
response.should be_forbidden
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
describe
|
57
|
-
it
|
56
|
+
describe 'When not logged in' do
|
57
|
+
it 'assigns empty as @checked_items' do
|
58
58
|
get :index
|
59
59
|
assigns(:checked_items).should be_nil
|
60
60
|
response.should redirect_to(new_user_session_url)
|
61
61
|
end
|
62
62
|
|
63
|
-
it
|
64
|
-
get :index, :
|
63
|
+
it 'should not get index with basket_id and item_id' do
|
64
|
+
get :index, basket_id: 1, item_id: 1
|
65
65
|
assigns(:checked_items).should be_nil
|
66
66
|
response.should redirect_to(new_user_session_url)
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
describe
|
72
|
-
describe
|
71
|
+
describe 'GET show' do
|
72
|
+
describe 'When logged in as Administrator' do
|
73
73
|
login_fixture_admin
|
74
74
|
|
75
|
-
it
|
76
|
-
get :show, :
|
75
|
+
it 'assigns the requested checked_item as @checked_item' do
|
76
|
+
get :show, id: 1
|
77
77
|
assigns(:checked_item).should eq(checked_items(:checked_item_00001))
|
78
78
|
response.should be_success
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
-
describe
|
82
|
+
describe 'When logged in as Librarian' do
|
83
83
|
login_fixture_librarian
|
84
84
|
|
85
|
-
it
|
86
|
-
get :show, :
|
85
|
+
it 'assigns the requested checked_item as @checked_item' do
|
86
|
+
get :show, id: 1
|
87
87
|
assigns(:checked_item).should eq(checked_items(:checked_item_00001))
|
88
88
|
response.should be_success
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
-
describe
|
92
|
+
describe 'When logged in as User' do
|
93
93
|
login_fixture_user
|
94
94
|
|
95
|
-
it
|
96
|
-
get :show, :
|
95
|
+
it 'assigns the requested checked_item as @checked_item' do
|
96
|
+
get :show, id: 1
|
97
97
|
assigns(:checked_item).should eq(checked_items(:checked_item_00001))
|
98
98
|
response.should be_forbidden
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
-
describe
|
103
|
-
it
|
104
|
-
get :show, :
|
102
|
+
describe 'When not logged in' do
|
103
|
+
it 'assigns the requested checked_item as @checked_item' do
|
104
|
+
get :show, id: 1
|
105
105
|
assigns(:checked_item).should eq(checked_items(:checked_item_00001))
|
106
106
|
response.should redirect_to(new_user_session_url)
|
107
107
|
end
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
-
describe
|
112
|
-
describe
|
111
|
+
describe 'GET new' do
|
112
|
+
describe 'When logged in as Administrator' do
|
113
113
|
login_fixture_admin
|
114
114
|
|
115
|
-
it
|
116
|
-
get :new, :
|
115
|
+
it 'assigns the requested checked_item as @checked_item' do
|
116
|
+
get :new, basket_id: 3
|
117
117
|
assigns(:checked_item).should_not be_valid
|
118
118
|
end
|
119
119
|
|
120
|
-
describe
|
121
|
-
it
|
120
|
+
describe 'When basket is not specified' do
|
121
|
+
it 'should be forbidden' do
|
122
122
|
get :new
|
123
123
|
response.should redirect_to new_basket_url
|
124
124
|
end
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
describe
|
128
|
+
describe 'When logged in as Librarian' do
|
129
129
|
login_fixture_librarian
|
130
130
|
|
131
|
-
it
|
132
|
-
get :new, :
|
131
|
+
it 'assigns the requested checked_item as @checked_item' do
|
132
|
+
get :new, basket_id: 3
|
133
133
|
assigns(:checked_item).should_not be_valid
|
134
134
|
response.should be_success
|
135
135
|
end
|
136
136
|
end
|
137
137
|
|
138
|
-
describe
|
138
|
+
describe 'When logged in as User' do
|
139
139
|
login_fixture_user
|
140
140
|
|
141
|
-
it
|
142
|
-
get :new, :
|
141
|
+
it 'should not assign the requested checked_item as @checked_item' do
|
142
|
+
get :new, basket_id: 3
|
143
143
|
assigns(:checked_item).should be_nil
|
144
144
|
response.should be_forbidden
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
-
describe
|
149
|
-
it
|
150
|
-
get :new, :
|
148
|
+
describe 'When not logged in' do
|
149
|
+
it 'should not assign the requested checked_item as @checked_item' do
|
150
|
+
get :new, basket_id: 3
|
151
151
|
assigns(:checked_item).should be_nil
|
152
152
|
response.should redirect_to(new_user_session_url)
|
153
153
|
end
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
-
describe
|
158
|
-
describe
|
157
|
+
describe 'GET edit' do
|
158
|
+
describe 'When logged in as Administrator' do
|
159
159
|
login_fixture_admin
|
160
160
|
|
161
|
-
it
|
161
|
+
it 'assigns the requested checked_item as @checked_item' do
|
162
162
|
checked_item = checked_items(:checked_item_00001)
|
163
|
-
get :edit, :
|
163
|
+
get :edit, id: checked_item.id
|
164
164
|
assigns(:checked_item).should eq(checked_item)
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
-
describe
|
168
|
+
describe 'When logged in as Librarian' do
|
169
169
|
login_fixture_librarian
|
170
170
|
|
171
|
-
it
|
171
|
+
it 'assigns the requested checked_item as @checked_item' do
|
172
172
|
checked_item = checked_items(:checked_item_00001)
|
173
|
-
get :edit, :
|
173
|
+
get :edit, id: checked_item.id
|
174
174
|
assigns(:checked_item).should eq(checked_item)
|
175
175
|
response.should be_success
|
176
176
|
end
|
177
177
|
end
|
178
178
|
|
179
|
-
describe
|
179
|
+
describe 'When logged in as User' do
|
180
180
|
login_fixture_user
|
181
181
|
|
182
|
-
it
|
182
|
+
it 'assigns the requested checked_item as @checked_item' do
|
183
183
|
checked_item = checked_items(:checked_item_00001)
|
184
|
-
get :edit, :
|
184
|
+
get :edit, id: checked_item.id
|
185
185
|
response.should be_forbidden
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
189
|
-
describe
|
190
|
-
it
|
189
|
+
describe 'When not logged in' do
|
190
|
+
it 'should not assign the requested checked_item as @checked_item' do
|
191
191
|
checked_item = checked_items(:checked_item_00001)
|
192
|
-
get :edit, :
|
192
|
+
get :edit, id: checked_item.id
|
193
193
|
response.should redirect_to(new_user_session_url)
|
194
194
|
end
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
198
|
-
describe
|
198
|
+
describe 'POST create' do
|
199
199
|
before(:each) do
|
200
|
-
@attrs = {item_identifier: '00011'}
|
201
|
-
@invalid_attrs = {item_identifier: 'invalid'}
|
200
|
+
@attrs = { item_identifier: '00011' }
|
201
|
+
@invalid_attrs = { item_identifier: 'invalid' }
|
202
202
|
end
|
203
203
|
|
204
|
-
describe
|
204
|
+
describe 'When logged in as Administrator' do
|
205
205
|
login_fixture_admin
|
206
206
|
|
207
|
-
describe
|
208
|
-
it
|
209
|
-
post :create, :
|
207
|
+
describe 'When the item is missing' do
|
208
|
+
it 'assigns a newly created checked_item as @checked_item' do
|
209
|
+
post :create, checked_item: { item_identifier: 'not found' }, basket_id: 1
|
210
210
|
assigns(:checked_item).should_not be_valid
|
211
211
|
assigns(:checked_item).errors[:base].include?(I18n.t('activerecord.errors.messages.checked_item.item_not_found')).should be_truthy
|
212
212
|
end
|
213
213
|
end
|
214
214
|
|
215
|
-
describe
|
216
|
-
it
|
217
|
-
post :create, :
|
215
|
+
describe 'When the item is not for checkout' do
|
216
|
+
it 'assigns a newly created checked_item as @checked_item' do
|
217
|
+
post :create, checked_item: { item_identifier: '00017' }, basket_id: 1
|
218
218
|
assigns(:checked_item).should_not be_valid
|
219
219
|
assigns(:checked_item).errors[:base].include?(I18n.t('activerecord.errors.messages.checked_item.not_available_for_checkout')).should be_truthy
|
220
220
|
end
|
221
221
|
end
|
222
222
|
|
223
|
-
describe
|
224
|
-
it
|
225
|
-
post :create, :
|
223
|
+
describe 'When the item is already checked out' do
|
224
|
+
it 'assigns a newly created checked_item as @checked_item' do
|
225
|
+
post :create, checked_item: { item_identifier: '00013' }, basket_id: 8
|
226
226
|
assigns(:checked_item).should_not be_valid
|
227
227
|
assigns(:checked_item).errors[:base].include?(I18n.t('activerecord.errors.messages.checked_item.already_checked_out')).should be_truthy
|
228
228
|
end
|
229
229
|
end
|
230
230
|
|
231
|
-
describe
|
232
|
-
it
|
231
|
+
describe 'When the item is reserved' do
|
232
|
+
it 'assigns a newly created checked_item as @checked_item' do
|
233
233
|
old_count = items(:item_00021).manifestation.reserves.waiting.count
|
234
|
-
post :create, :
|
234
|
+
post :create, checked_item: { item_identifier: '00021' }, basket_id: 11
|
235
235
|
assigns(:checked_item).should be_valid
|
236
236
|
assigns(:checked_item).item.manifestation.reserves.waiting.count.should eq old_count
|
237
237
|
assigns(:checked_item).librarian.should eq users(:admin)
|
238
238
|
end
|
239
239
|
end
|
240
240
|
|
241
|
-
it
|
242
|
-
post :create, :
|
241
|
+
it 'should not create checked_item without basket_id' do
|
242
|
+
post :create, checked_item: { item_identifier: '00004' }
|
243
243
|
response.should be_forbidden
|
244
244
|
end
|
245
245
|
|
246
|
-
it
|
247
|
-
post :create, :
|
246
|
+
it 'should not create checked_item without item_id' do
|
247
|
+
post :create, checked_item: { item_identifier: '00004' }, basket_id: 1
|
248
248
|
response.should be_success
|
249
249
|
end
|
250
250
|
end
|
251
251
|
|
252
|
-
describe
|
252
|
+
describe 'When logged in as Librarian' do
|
253
253
|
login_fixture_librarian
|
254
254
|
|
255
|
-
it
|
256
|
-
post :create, :
|
255
|
+
it 'should create checked_item' do
|
256
|
+
post :create, checked_item: @attrs, basket_id: 3
|
257
257
|
assigns(:checked_item).due_date.should eq Time.zone.now.tomorrow.end_of_day
|
258
258
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
259
259
|
end
|
260
260
|
|
261
|
-
it
|
262
|
-
post :create, :
|
261
|
+
it 'should create checked_item with item_identifier' do
|
262
|
+
post :create, checked_item: { item_identifier: '00011' }, basket_id: 3
|
263
263
|
assigns(:checked_item).should be_truthy
|
264
264
|
assigns(:checked_item).due_date.should_not be_nil
|
265
265
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
266
|
-
end
|
266
|
+
end
|
267
267
|
|
268
|
-
it
|
269
|
-
post :create, :
|
268
|
+
it 'should override due_date' do
|
269
|
+
post :create, checked_item: { item_identifier: '00011', due_date_string: 1.year.from_now.strftime('%Y-%m-%d') }, basket_id: 3
|
270
270
|
assigns(:checked_item).should be_truthy
|
271
271
|
assigns(:checked_item).due_date.should eq 1.year.from_now.end_of_day
|
272
272
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
273
|
-
end
|
273
|
+
end
|
274
274
|
|
275
|
-
it
|
276
|
-
post :create, :
|
275
|
+
it 'should not create checked_item with an invalid due_date' do
|
276
|
+
post :create, checked_item: { item_identifier: '00011', due_date_string: 'invalid' }, basket_id: 3
|
277
277
|
assigns(:checked_item).should_not be_valid
|
278
278
|
assigns(:checked_item).due_date.should be_nil
|
279
279
|
response.should be_success
|
280
|
-
end
|
280
|
+
end
|
281
281
|
|
282
|
-
it
|
283
|
-
post :create, :
|
282
|
+
it 'should not create checked_item if excessed checkout_limit' do
|
283
|
+
post :create, checked_item: { item_identifier: '00011' }, basket_id: 1
|
284
284
|
response.should be_success
|
285
|
-
assigns(:checked_item).errors[
|
285
|
+
assigns(:checked_item).errors['base'].include?(I18n.t('activerecord.errors.messages.checked_item.excessed_checkout_limit')).should be_truthy
|
286
286
|
end
|
287
287
|
|
288
|
-
it
|
289
|
-
post :create, :
|
288
|
+
it 'should show message when the item includes supplements' do
|
289
|
+
post :create, checked_item: { item_identifier: '00006' }, basket_id: 3
|
290
290
|
assigns(:checked_item).due_date.should_not be_nil
|
291
291
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
292
292
|
flash[:message].index(I18n.t('item.this_item_include_supplement')).should be_truthy
|
293
|
-
end
|
293
|
+
end
|
294
294
|
|
295
|
-
it
|
296
|
-
post :create, :
|
295
|
+
it 'should create checked_item when ignore_restriction is checked' do
|
296
|
+
post :create, checked_item: { item_identifier: '00011', ignore_restriction: '1' }, basket_id: 2
|
297
297
|
assigns(:checked_item).due_date.should_not be_nil
|
298
298
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
299
299
|
end
|
300
300
|
end
|
301
301
|
|
302
|
-
describe
|
302
|
+
describe 'When logged in as User' do
|
303
303
|
login_fixture_user
|
304
304
|
|
305
|
-
it
|
306
|
-
post :create, :
|
305
|
+
it 'should not create checked_item' do
|
306
|
+
post :create, checked_item: { item_identifier: '00004' }, basket_id: 3
|
307
307
|
response.should be_forbidden
|
308
308
|
end
|
309
309
|
end
|
310
310
|
|
311
|
-
describe
|
312
|
-
it
|
313
|
-
post :create, :
|
311
|
+
describe 'When not logged in as' do
|
312
|
+
it 'should not create checked_item' do
|
313
|
+
post :create, checked_item: { item_identifier: '00004' }, basket_id: 1
|
314
314
|
response.should redirect_to new_user_session_url
|
315
315
|
end
|
316
316
|
end
|
317
317
|
end
|
318
318
|
|
319
|
-
describe
|
319
|
+
describe 'PUT update' do
|
320
320
|
before(:each) do
|
321
|
-
@attrs = {item_identifier: '00011'}
|
322
|
-
@invalid_attrs = {item_identifier: 'invalid'}
|
321
|
+
@attrs = { item_identifier: '00011' }
|
322
|
+
@invalid_attrs = { item_identifier: 'invalid' }
|
323
323
|
end
|
324
324
|
|
325
|
-
describe
|
325
|
+
describe 'When logged in as Administrator' do
|
326
326
|
login_fixture_admin
|
327
327
|
|
328
|
-
it
|
329
|
-
put :update, :
|
328
|
+
it 'should not update checked_item without basket_id' do
|
329
|
+
put :update, id: 1, checked_item: {}
|
330
330
|
response.should be_forbidden
|
331
331
|
end
|
332
332
|
end
|
333
333
|
|
334
|
-
describe
|
334
|
+
describe 'When logged in as Librarian' do
|
335
335
|
login_fixture_librarian
|
336
336
|
|
337
|
-
it
|
338
|
-
put :update, :
|
337
|
+
it 'should not update checked_item without basket_id' do
|
338
|
+
put :update, id: 1, checked_item: {}
|
339
339
|
response.should be_forbidden
|
340
340
|
end
|
341
341
|
|
342
|
-
it
|
343
|
-
put :update, :
|
342
|
+
it 'should update checked_item' do
|
343
|
+
put :update, id: 4, checked_item: {}, basket_id: 8
|
344
344
|
assigns(:checked_item).should be_valid
|
345
345
|
response.should redirect_to checked_item_url(assigns(:checked_item))
|
346
346
|
end
|
347
347
|
end
|
348
348
|
|
349
|
-
describe
|
349
|
+
describe 'When logged in as User' do
|
350
350
|
login_fixture_user
|
351
351
|
|
352
|
-
it
|
353
|
-
put :update, :
|
352
|
+
it 'should not update checked_item' do
|
353
|
+
put :update, id: 1, checked_item: {}, basket_id: 3
|
354
354
|
response.should be_forbidden
|
355
355
|
end
|
356
356
|
end
|
357
357
|
|
358
|
-
describe
|
359
|
-
it
|
360
|
-
put :update, :
|
358
|
+
describe 'When not logged in' do
|
359
|
+
it 'should not update checked_item' do
|
360
|
+
put :update, id: 1, checked_item: {}, basket_id: 1
|
361
361
|
response.should redirect_to new_user_session_url
|
362
362
|
end
|
363
363
|
end
|
364
364
|
end
|
365
365
|
|
366
|
-
describe
|
367
|
-
describe
|
366
|
+
describe 'DELETE destroy' do
|
367
|
+
describe 'When logged in as Administrator' do
|
368
368
|
login_fixture_admin
|
369
369
|
|
370
|
-
it
|
371
|
-
delete :destroy, :
|
370
|
+
it 'should destroy checked_item' do
|
371
|
+
delete :destroy, id: 1
|
372
372
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
373
373
|
end
|
374
374
|
end
|
375
375
|
|
376
|
-
describe
|
376
|
+
describe 'When logged in as Librarian' do
|
377
377
|
login_fixture_librarian
|
378
378
|
|
379
|
-
it
|
380
|
-
delete :destroy, :
|
379
|
+
it 'should destroy checked_item' do
|
380
|
+
delete :destroy, id: 1
|
381
381
|
response.should redirect_to checked_items_url(basket_id: assigns(:checked_item).basket_id)
|
382
382
|
end
|
383
383
|
end
|
384
384
|
|
385
|
-
describe
|
385
|
+
describe 'When logged in as User' do
|
386
386
|
login_fixture_user
|
387
387
|
|
388
|
-
it
|
389
|
-
delete :destroy, :
|
388
|
+
it 'should not destroy checked_item' do
|
389
|
+
delete :destroy, id: 3
|
390
390
|
response.should be_forbidden
|
391
391
|
end
|
392
392
|
end
|
393
393
|
|
394
|
-
describe
|
395
|
-
it
|
396
|
-
delete :destroy, :
|
394
|
+
describe 'When not logged in' do
|
395
|
+
it 'should not destroy checked_item' do
|
396
|
+
delete :destroy, id: 1
|
397
397
|
response.should redirect_to new_user_session_url
|
398
398
|
end
|
399
399
|
end
|