shamu 0.0.13 → 0.0.14

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +55 -20
  3. data/Gemfile +3 -3
  4. data/Gemfile.lock +13 -11
  5. data/circle.yml +1 -1
  6. data/lib/shamu/attributes/assignment.rb +44 -5
  7. data/lib/shamu/attributes/camel_case.rb +21 -0
  8. data/lib/shamu/attributes/validation.rb +13 -1
  9. data/lib/shamu/attributes/validators/valid_validator.rb +14 -0
  10. data/lib/shamu/attributes/validators.rb +7 -0
  11. data/lib/shamu/attributes.rb +13 -8
  12. data/lib/shamu/auditing/auditing_service.rb +1 -5
  13. data/lib/shamu/auditing/support.rb +14 -2
  14. data/lib/shamu/entities/active_record.rb +16 -2
  15. data/lib/shamu/entities/active_record_soft_destroy.rb +7 -3
  16. data/lib/shamu/entities/entity.rb +1 -1
  17. data/lib/shamu/entities/entity_lookup_service.rb +137 -0
  18. data/lib/shamu/entities/entity_path.rb +6 -9
  19. data/lib/shamu/entities/list.rb +8 -2
  20. data/lib/shamu/entities/list_scope/paging.rb +3 -3
  21. data/lib/shamu/entities/list_scope/sorting.rb +21 -2
  22. data/lib/shamu/entities/list_scope/window_paging.rb +96 -0
  23. data/lib/shamu/entities/list_scope.rb +2 -2
  24. data/lib/shamu/entities/opaque_entity_lookup_service.rb +59 -0
  25. data/lib/shamu/entities/opaque_id.rb +54 -0
  26. data/lib/shamu/entities/paged_list.rb +137 -0
  27. data/lib/shamu/entities.rb +5 -1
  28. data/lib/shamu/events/active_record/service.rb +1 -2
  29. data/lib/shamu/events/in_memory/service.rb +1 -2
  30. data/lib/shamu/features/conditions/percentage.rb +3 -3
  31. data/lib/shamu/features/features_service.rb +2 -2
  32. data/lib/shamu/features/toggle.rb +2 -3
  33. data/lib/shamu/json_api/context.rb +0 -1
  34. data/lib/shamu/json_api/rails/controller.rb +0 -2
  35. data/lib/shamu/rails/controller.rb +0 -1
  36. data/lib/shamu/rails/entity.rb +1 -1
  37. data/lib/shamu/security/policy.rb +1 -2
  38. data/lib/shamu/services/active_record.rb +16 -0
  39. data/lib/shamu/services/active_record_crud.rb +32 -22
  40. data/lib/shamu/services/lazy_transform.rb +31 -0
  41. data/lib/shamu/services/request_support.rb +3 -2
  42. data/lib/shamu/services/service.rb +11 -3
  43. data/lib/shamu/to_model_id_extension.rb +2 -1
  44. data/lib/shamu/version.rb +2 -1
  45. data/shamu.gemspec +2 -1
  46. data/spec/lib/shamu/active_record_support.rb +6 -0
  47. data/spec/lib/shamu/attributes/assignment_spec.rb +69 -5
  48. data/spec/lib/shamu/attributes/camel_case_spec.rb +33 -0
  49. data/spec/lib/shamu/attributes/validation_spec.rb +9 -1
  50. data/spec/lib/shamu/attributes_spec.rb +4 -0
  51. data/spec/lib/shamu/entities/active_record_spec.rb +27 -0
  52. data/spec/lib/shamu/entities/entity_lookup_models.rb +11 -0
  53. data/spec/lib/shamu/entities/entity_lookup_service_spec.rb +77 -0
  54. data/spec/lib/shamu/entities/entity_path_spec.rb +3 -4
  55. data/spec/lib/shamu/entities/list_scope/paging_spec.rb +7 -3
  56. data/spec/lib/shamu/entities/list_scope/sorting_spec.rb +1 -7
  57. data/spec/lib/shamu/entities/opaque_entity_lookup_service_spec.rb +39 -0
  58. data/spec/lib/shamu/entities/opaque_id_spec.rb +30 -0
  59. data/spec/lib/shamu/entities/paged_list_spec.rb +170 -0
  60. data/spec/lib/shamu/services/active_record_crud_spec.rb +10 -1
  61. data/spec/lib/shamu/services/lazy_transform_spec.rb +14 -0
  62. data/spec/lib/shamu/to_model_id_extension_spec.rb +5 -1
  63. data/spec/support/active_record.rb +1 -1
  64. metadata +24 -4
@@ -7,7 +7,6 @@ module EntityPathSpec
7
7
  end
8
8
 
9
9
  describe Shamu::Entities::EntityPath do
10
- include Shamu::Entities::EntityPath
11
10
 
12
11
  {
13
12
  "User[45]/Calendar[567]/Event[1]" => [
@@ -19,7 +18,7 @@ describe Shamu::Entities::EntityPath do
19
18
  "EntityPathSpec::Example[91]" => [ [ "EntityPathSpec::Example", "91" ] ]
20
19
  }.each do |path, entities|
21
20
  it "decompose #{ path } to #{ entities }" do
22
- expect( decompose_entity_path( path ) ).to eq entities
21
+ expect( Shamu::Entities::EntityPath.decompose_entity_path( path ) ).to eq entities
23
22
  end
24
23
  end
25
24
 
@@ -34,7 +33,7 @@ describe Shamu::Entities::EntityPath do
34
33
  "EntityPathSpec::Example[91]" => [ EntityPathSpec::ExampleEntity.new( id: 91 ) ]
35
34
  }.each do |path, entities|
36
35
  it "composes #{ entities } to #{ path }" do
37
- expect( compose_entity_path( entities ) ).to eq path
36
+ expect( Shamu::Entities::EntityPath.compose_entity_path( entities ) ).to eq path
38
37
  end
39
38
  end
40
- end
39
+ end
@@ -21,11 +21,15 @@ describe Shamu::Entities::ListScope::Paging do
21
21
  end
22
22
 
23
23
  it "uses default_per_page if not per_page set" do
24
- expect( klass.new.per_page ).to eq 25
24
+ scope = klass.new
25
+ scope.default_per_page = 25
26
+ expect( scope.per_page ).to eq 25
25
27
  end
26
28
 
27
29
  it "includes paging values in to_param" do
28
- expect( klass.new.params ).to eq page: nil, per_page: 25
30
+ scope = klass.new
31
+ scope.default_per_page = 25
32
+ expect( scope.params ).to eq page: nil, per_page: 25
29
33
  end
30
34
 
31
35
  it "should not be paged if using defaults" do
@@ -38,4 +42,4 @@ describe Shamu::Entities::ListScope::Paging do
38
42
  expect( scope.paged? ).to be_truthy
39
43
  end
40
44
 
41
- end
45
+ end
@@ -18,12 +18,6 @@ describe Shamu::Entities::ListScope::Paging do
18
18
  expect( scope.sort_by ).to eq first_name: :asc, last_name: :asc
19
19
  end
20
20
 
21
- it "parses array of args to fluid_assignment" do
22
- scope = klass.new
23
- scope.sort_by :first_name, :last_name
24
- expect( scope.sort_by ).to eq first_name: :asc, last_name: :asc
25
- end
26
-
27
21
  it "parses array via assignment" do
28
22
  scope = klass.new
29
23
  scope.sort_by = [ :first_name, :last_name ]
@@ -56,4 +50,4 @@ describe Shamu::Entities::ListScope::Paging do
56
50
  it "is sorted when asked" do
57
51
  expect( klass.new( sort_by: :name ).sorted? ).to be_truthy
58
52
  end
59
- end
53
+ end
@@ -0,0 +1,39 @@
1
+ require "spec_helper"
2
+ require_relative "entity_lookup_models"
3
+
4
+ describe Shamu::Entities::OpaqueEntityLookupService do
5
+ let( :service ) { scorpion.new Shamu::Entities::OpaqueEntityLookupService }
6
+
7
+ describe "#ids" do
8
+ it "obfuscates the ids" do
9
+ entity = EntityLookupServiceSpecs::ExampleEntity.new( id: 5 )
10
+ expect( service.ids( entity ) ).not_to include( match( /EntityLookupServiceSpecs/ ) )
11
+ end
12
+ end
13
+
14
+ describe "#record_ids" do
15
+ it "gets the original record id" do
16
+ entity = EntityLookupServiceSpecs::ExampleEntity.new( id: 5 )
17
+ id = service.ids( entity ).first
18
+
19
+ expect( service.record_ids( id ).first ).to eq( 5 )
20
+ end
21
+ end
22
+
23
+ describe "#lookup" do
24
+ let( :examples_service ) { double( EntityLookupServiceSpecs::ExamplesService ) }
25
+
26
+ before( :each ) do
27
+ allow( service.scorpion ).to receive( :fetch )
28
+ .with( EntityLookupServiceSpecs::ExamplesService )
29
+ .and_return( examples_service )
30
+ end
31
+
32
+ it "finds an entity" do
33
+ expect( examples_service ).to receive( :lookup ).with( "4" ).and_return [ "Found" ]
34
+ id = service.ids( "EntityLookupServiceSpecs::Example[4]" ).first
35
+
36
+ expect( service.lookup( id ).to_a ).to eq [ "Found" ]
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,30 @@
1
+ require "spec_helper"
2
+
3
+ describe Shamu::Entities::OpaqueId do
4
+
5
+ describe ".to_model_id" do
6
+ it "gets the encoded id for a valid opaque id" do
7
+ # Patients::Patient[1]
8
+ expect( Shamu::Entities::OpaqueId.to_model_id( "::UGF0aWVudHM6OlBhdGllbnRbMV0=" ) ).to eq 1
9
+ end
10
+
11
+ it "is int for raw ids" do
12
+ expect( Shamu::Entities::OpaqueId.to_model_id( "23" ) ).to eq 23
13
+ end
14
+ end
15
+
16
+ describe ".opaque_id?" do
17
+ it "recognizes encoded ids" do
18
+ expect( Shamu::Entities::OpaqueId.opaque_id?( "::UGF0aWVudHM6OlBhdGllbnRbMV0=" ) ).to be_truthy
19
+ end
20
+
21
+ it "does not recognize raw numbers" do
22
+ expect( Shamu::Entities::OpaqueId.opaque_id?( "123" ) ).to be_falsy
23
+ end
24
+
25
+ it "does not recognize base64 encoded" do
26
+ expect( Shamu::Entities::OpaqueId.opaque_id?( "UGF0aWVudHM6OlBhdGllbnRbMV0=" ) ).to be_falsy
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,170 @@
1
+ require "spec_helper"
2
+ require "active_record"
3
+ require "lib/shamu/active_record_support"
4
+
5
+ module PagedListSpec
6
+ class Scope < ::ActiveRecordSpec::FavoriteScope
7
+ include Shamu::Entities::ListScope::Paging
8
+ end
9
+ end
10
+
11
+ describe Shamu::Entities::PagedList do
12
+ use_active_record
13
+
14
+ let( :relation ) do
15
+ scope = PagedListSpec::Scope.new( per_page: 10 )
16
+ ActiveRecordSpec::Favorite.by_list_scope( scope )
17
+ end
18
+
19
+ let( :transform ) do
20
+ Shamu::Services::LazyTransform.new( relation ) do |records|
21
+ records.map do |record|
22
+ ActiveRecordSpec::FavoriteEntity.new( record: record )
23
+ end
24
+ end
25
+ end
26
+
27
+ describe "#total_count" do
28
+ it "delegates to underlying relation" do
29
+ list = Shamu::Entities::PagedList.new( transform )
30
+
31
+ expect( relation ).to receive( :total_count )
32
+ list.total_count
33
+ end
34
+
35
+ it "uses absolute value" do
36
+ list = Shamu::Entities::PagedList.new( transform, total_count: 23 )
37
+
38
+ expect( list.total_count ).to eq 23
39
+ end
40
+
41
+ it "invokes block" do
42
+ expect do |b|
43
+ list = Shamu::Entities::PagedList.new( transform, total_count: b.to_proc )
44
+ list.total_count
45
+ end.to yield_control
46
+ end
47
+ end
48
+
49
+ describe "#limit" do
50
+
51
+ it "delegates to underlying relation" do
52
+ list = Shamu::Entities::PagedList.new( transform )
53
+
54
+ expect( relation ).to receive( :limit_value )
55
+ list.limit
56
+ end
57
+
58
+ it "uses absolute value" do
59
+ list = Shamu::Entities::PagedList.new( transform, limit: 23 )
60
+
61
+ expect( list.limit ).to eq 23
62
+ end
63
+
64
+ it "invokes block" do
65
+ expect do |b|
66
+ list = Shamu::Entities::PagedList.new( transform, limit: b.to_proc )
67
+ list.limit
68
+ end.to yield_control
69
+ end
70
+
71
+ end
72
+
73
+ describe "#offset" do
74
+
75
+ it "delegates to underlying relation" do
76
+ list = Shamu::Entities::PagedList.new( transform )
77
+
78
+ expect( relation ).to receive( :offset_value )
79
+ list.offset
80
+ end
81
+
82
+ it "uses absolute value" do
83
+ list = Shamu::Entities::PagedList.new( transform, offset: 23 )
84
+
85
+ expect( list.offset ).to eq 23
86
+ end
87
+
88
+ it "invokes block" do
89
+ expect do |b|
90
+ list = Shamu::Entities::PagedList.new( transform, offset: b.to_proc )
91
+ list.offset
92
+ end.to yield_control
93
+ end
94
+
95
+ end
96
+
97
+ describe "#next?" do
98
+
99
+ it "delegates to underlying relation has_next?" do
100
+ list = Shamu::Entities::PagedList.new( transform )
101
+
102
+ expect( relation ).to receive( :has_next? )
103
+ list.next?
104
+ end
105
+
106
+ it "delegates to underlying relation last_page?" do
107
+ list = Shamu::Entities::PagedList.new( transform )
108
+
109
+ expect( relation ).to receive( :last_page? )
110
+ list.next?
111
+ end
112
+
113
+ it "uses absolute value" do
114
+ list = Shamu::Entities::PagedList.new( transform, has_next: true )
115
+
116
+ expect( list.next? ).to be_truthy
117
+ end
118
+
119
+ it "invokes block" do
120
+ expect do |b|
121
+ list = Shamu::Entities::PagedList.new( transform, has_next: b.to_proc )
122
+ list.next?
123
+ end.to yield_control
124
+ end
125
+
126
+ end
127
+
128
+ describe "#previous?" do
129
+
130
+ it "delegates to underlying relation has_previous?" do
131
+ list = Shamu::Entities::PagedList.new( transform )
132
+
133
+ expect( relation ).to receive( :has_previous? )
134
+ list.previous?
135
+ end
136
+
137
+ it "delegates to underlying relation last_page?" do
138
+ list = Shamu::Entities::PagedList.new( transform )
139
+
140
+ expect( relation ).to receive( :first_page? )
141
+ list.previous?
142
+ end
143
+
144
+ it "uses absolute value" do
145
+ list = Shamu::Entities::PagedList.new( transform, has_previous: true )
146
+
147
+ expect( list.previous? ).to be_truthy
148
+ end
149
+
150
+ it "invokes block" do
151
+ expect do |b|
152
+ list = Shamu::Entities::PagedList.new( transform, has_previous: b.to_proc )
153
+ list.previous?
154
+ end.to yield_control
155
+ end
156
+
157
+ end
158
+
159
+ describe "current_page" do
160
+ it "calculates page" do
161
+ list = Shamu::Entities::PagedList.new( transform, limit: 5, offset: 15 )
162
+ expect( list.current_page ).to eq 4
163
+ end
164
+
165
+ it "calculates page with padding" do
166
+ list = Shamu::Entities::PagedList.new( transform, limit: 5, offset: 16 )
167
+ expect( list.current_page ).to eq 4
168
+ end
169
+ end
170
+ end
@@ -23,6 +23,10 @@ module ActiveRecordCrudSpec
23
23
  attribute :id
24
24
  end
25
25
 
26
+ class Destroy < Change
27
+ attribute :id
28
+ end
29
+
26
30
  end
27
31
 
28
32
  class Service < Shamu::Services::Service
@@ -189,6 +193,11 @@ describe Shamu::Services::ActiveRecordCrud do
189
193
  service.update entity, request
190
194
  end
191
195
 
196
+ it "backfills missing attributes" do
197
+ expect( request ).to receive( :assign_attributes ).with( hash_including( label: "Books" ) )
198
+ service.update entity, request
199
+ end
200
+
192
201
  it "calls apply_changes if present" do
193
202
  expect( service ).to receive( :apply_changes )
194
203
  .with(
@@ -425,7 +434,7 @@ describe Shamu::Services::ActiveRecordCrud do
425
434
 
426
435
  it "destroys the record" do
427
436
  expect do
428
- service.destroy entity
437
+ service.destroy( entity ).valid!
429
438
  end.to change( ActiveRecordSpec::Favorite, :count ).by( -1 )
430
439
  end
431
440
 
@@ -47,6 +47,20 @@ describe Shamu::Services::LazyTransform do
47
47
  end.to yield_control.exactly(3)
48
48
  end
49
49
 
50
+ it "short-circuits last" do
51
+ expect do |block|
52
+ transformed = Shamu::Services::LazyTransform.new( source, &transformer( &block ) )
53
+ transformed.last
54
+ end.to yield_control.once
55
+ end
56
+
57
+ it "doesn't short-circuit last(n)" do
58
+ expect do |block|
59
+ transformed = Shamu::Services::LazyTransform.new( source, &transformer( &block ) )
60
+ transformed.last( 2 )
61
+ end.to yield_control.exactly(3)
62
+ end
63
+
50
64
  it "short-circuits empty?" do
51
65
  expect do |block|
52
66
  transformed = Shamu::Services::LazyTransform.new( source, &transformer( &block ) )
@@ -23,6 +23,10 @@ describe Shamu::ToModelIdExtension do
23
23
  it "returns self for an integer" do
24
24
  expect( 789.to_model_id ).to eq 789
25
25
  end
26
+
27
+ it "returns nil for nil" do
28
+ expect( nil.to_model_id ).to eq nil
29
+ end
26
30
  end
27
31
 
28
32
  describe Shamu::ToModelIdExtension::Enumerables do
@@ -51,4 +55,4 @@ describe Shamu::ToModelIdExtension do
51
55
  end
52
56
  end
53
57
 
54
- end
58
+ end
@@ -14,4 +14,4 @@ module Support
14
14
  end
15
15
  end
16
16
  end
17
- end
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shamu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Alexander
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-18 00:00:00.000000000 Z
11
+ date: 2017-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.11.2
61
+ version: '1.11'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.11.2
68
+ version: '1.11'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -230,10 +230,13 @@ files:
230
230
  - lib/shamu/attributes.rb
231
231
  - lib/shamu/attributes/README.md
232
232
  - lib/shamu/attributes/assignment.rb
233
+ - lib/shamu/attributes/camel_case.rb
233
234
  - lib/shamu/attributes/equality.rb
234
235
  - lib/shamu/attributes/fluid_assignment.rb
235
236
  - lib/shamu/attributes/html_sanitation.rb
236
237
  - lib/shamu/attributes/validation.rb
238
+ - lib/shamu/attributes/validators.rb
239
+ - lib/shamu/attributes/validators/valid_validator.rb
237
240
  - lib/shamu/auditing.rb
238
241
  - lib/shamu/auditing/README.md
239
242
  - lib/shamu/auditing/audit_record.rb
@@ -247,6 +250,7 @@ files:
247
250
  - lib/shamu/entities/active_record.rb
248
251
  - lib/shamu/entities/active_record_soft_destroy.rb
249
252
  - lib/shamu/entities/entity.rb
253
+ - lib/shamu/entities/entity_lookup_service.rb
250
254
  - lib/shamu/entities/entity_path.rb
251
255
  - lib/shamu/entities/html_sanitation.rb
252
256
  - lib/shamu/entities/identity_cache.rb
@@ -256,7 +260,11 @@ files:
256
260
  - lib/shamu/entities/list_scope/paging.rb
257
261
  - lib/shamu/entities/list_scope/scoped_paging.rb
258
262
  - lib/shamu/entities/list_scope/sorting.rb
263
+ - lib/shamu/entities/list_scope/window_paging.rb
259
264
  - lib/shamu/entities/null_entity.rb
265
+ - lib/shamu/entities/opaque_entity_lookup_service.rb
266
+ - lib/shamu/entities/opaque_id.rb
267
+ - lib/shamu/entities/paged_list.rb
260
268
  - lib/shamu/error.rb
261
269
  - lib/shamu/events.rb
262
270
  - lib/shamu/events/README.md
@@ -370,6 +378,7 @@ files:
370
378
  - spec/internal/public/favicon.ico
371
379
  - spec/lib/shamu/active_record_support.rb
372
380
  - spec/lib/shamu/attributes/assignment_spec.rb
381
+ - spec/lib/shamu/attributes/camel_case_spec.rb
373
382
  - spec/lib/shamu/attributes/equality_spec.rb
374
383
  - spec/lib/shamu/attributes/fluid_assignment_spec.rb
375
384
  - spec/lib/shamu/attributes/html_sanitation_spec.rb
@@ -379,6 +388,8 @@ files:
379
388
  - spec/lib/shamu/auditing/support_spec.rb
380
389
  - spec/lib/shamu/entities/active_record_soft_destroy_spec.rb
381
390
  - spec/lib/shamu/entities/active_record_spec.rb
391
+ - spec/lib/shamu/entities/entity_lookup_models.rb
392
+ - spec/lib/shamu/entities/entity_lookup_service_spec.rb
382
393
  - spec/lib/shamu/entities/entity_path_spec.rb
383
394
  - spec/lib/shamu/entities/entity_spec.rb
384
395
  - spec/lib/shamu/entities/html_sanitation_spec.rb
@@ -390,6 +401,9 @@ files:
390
401
  - spec/lib/shamu/entities/list_scope_spec.rb
391
402
  - spec/lib/shamu/entities/list_spec.rb
392
403
  - spec/lib/shamu/entities/null_entity_spec.rb
404
+ - spec/lib/shamu/entities/opaque_entity_lookup_service_spec.rb
405
+ - spec/lib/shamu/entities/opaque_id_spec.rb
406
+ - spec/lib/shamu/entities/paged_list_spec.rb
393
407
  - spec/lib/shamu/events/active_record/migration_spec.rb
394
408
  - spec/lib/shamu/events/active_record/service_spec.rb
395
409
  - spec/lib/shamu/events/events_service_spec.rb
@@ -486,6 +500,7 @@ test_files:
486
500
  - spec/internal/public/favicon.ico
487
501
  - spec/lib/shamu/active_record_support.rb
488
502
  - spec/lib/shamu/attributes/assignment_spec.rb
503
+ - spec/lib/shamu/attributes/camel_case_spec.rb
489
504
  - spec/lib/shamu/attributes/equality_spec.rb
490
505
  - spec/lib/shamu/attributes/fluid_assignment_spec.rb
491
506
  - spec/lib/shamu/attributes/html_sanitation_spec.rb
@@ -495,6 +510,8 @@ test_files:
495
510
  - spec/lib/shamu/auditing/support_spec.rb
496
511
  - spec/lib/shamu/entities/active_record_soft_destroy_spec.rb
497
512
  - spec/lib/shamu/entities/active_record_spec.rb
513
+ - spec/lib/shamu/entities/entity_lookup_models.rb
514
+ - spec/lib/shamu/entities/entity_lookup_service_spec.rb
498
515
  - spec/lib/shamu/entities/entity_path_spec.rb
499
516
  - spec/lib/shamu/entities/entity_spec.rb
500
517
  - spec/lib/shamu/entities/html_sanitation_spec.rb
@@ -506,6 +523,9 @@ test_files:
506
523
  - spec/lib/shamu/entities/list_scope_spec.rb
507
524
  - spec/lib/shamu/entities/list_spec.rb
508
525
  - spec/lib/shamu/entities/null_entity_spec.rb
526
+ - spec/lib/shamu/entities/opaque_entity_lookup_service_spec.rb
527
+ - spec/lib/shamu/entities/opaque_id_spec.rb
528
+ - spec/lib/shamu/entities/paged_list_spec.rb
509
529
  - spec/lib/shamu/events/active_record/migration_spec.rb
510
530
  - spec/lib/shamu/events/active_record/service_spec.rb
511
531
  - spec/lib/shamu/events/events_service_spec.rb