Skip to content

Commit

Permalink
get members from af_object using ordered_members
Browse files Browse the repository at this point in the history
Otherwise, during the transformation back and forth, the members could be put on the transformed resource in the wrong order.  This fixes a randomly failing condition.

Changed wings tests to use ordered_members since that is the relationship used in hyrax.
  • Loading branch information
elrayle committed Mar 22, 2019
1 parent f7dba2d commit 6c30f5f
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 23 deletions.
7 changes: 5 additions & 2 deletions lib/wings/model_transformer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,12 @@ def self.for(pcdm_object)
#
# @return [Array<Symbol>]
def self.relationship_keys_for(reflections:)
reflections
relationships = reflections
.keys
.reject { |k| k.to_s.include?('id') }
.map { |k| k.to_s.singularize + '_ids' }
relationships.delete(:member_ids)
relationships
end

##
Expand Down Expand Up @@ -196,7 +198,8 @@ def attributes
updated_at: pcdm_object.try(:modified_date),
embargo_id: pcdm_object.try(:embargo)&.id,
lease_id: pcdm_object.try(:lease)&.id,
visibility: pcdm_object.try(:visibility))
visibility: pcdm_object.try(:visibility),
member_ids: pcdm_object.try(:ordered_member_ids))
end
end
# rubocop:enable Metrics/AbcSize
Expand Down
2 changes: 1 addition & 1 deletion spec/wings/active_fedora_converter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
let(:work3) { build(:work, id: 'wk3', title: ['Work 3']) }

before do
work1.members = [work2, work3]
work1.ordered_members = [work2, work3]
work1.save!
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
let(:parent_work_resource) { resource }

before do
work1.members = [work2, work3, fileset1, fileset2]
work1.ordered_members = [work2, work3, fileset1, fileset2]
work1.save!
end

Expand Down Expand Up @@ -111,7 +111,7 @@
let(:parent_work_resource) { resource }

before do
work1.members = [work2, work3, fileset1, fileset2]
work1.ordered_members = [work2, work3, fileset1, fileset2]
work1.save!
end

Expand Down Expand Up @@ -147,7 +147,7 @@
let(:pcdm_object) { collection1 }

before do
collection1.members = [work1, work2, collection2, collection3]
collection1.ordered_members = [work1, work2, collection2, collection3]
collection1.save!
end

Expand Down Expand Up @@ -181,7 +181,7 @@
let(:pcdm_object) { collection1 }

before do
collection1.members = [work1, work2, collection2, collection3]
collection1.ordered_members = [work1, work2, collection2, collection3]
collection1.save!
end

Expand Down Expand Up @@ -213,8 +213,8 @@
let(:child_resource) { resource }

before do
work1.members = [work3, fileset1]
work2.members = [work3, fileset2]
work1.ordered_members = [work3, fileset1]
work2.ordered_members = [work3, fileset2]
work1.save!
work2.save!
end
Expand Down Expand Up @@ -254,9 +254,9 @@
let(:child_resource) { resource }

before do
collection1.members = [work1, collection3]
collection2.members = [work1, work2]
work3.members = [work1]
collection1.ordered_members = [work1, collection3]
collection2.ordered_members = [work1, work2]
work3.ordered_members = [work1]
collection1.save!
collection2.save!
end
Expand Down Expand Up @@ -296,9 +296,9 @@
let(:child_resource) { resource }

before do
collection1.members = [work1, collection3]
collection2.members = [work1, work2]
work3.members = [work1]
collection1.ordered_members = [work1, collection3]
collection2.ordered_members = [work1, work2]
work3.ordered_members = [work1]
collection1.save!
collection2.save!
work3.save!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
let(:child_file_set_resource) { resource }

before do
work1.members = [fileset1]
work2.members = [fileset1]
work1.ordered_members = [fileset1]
work2.ordered_members = [fileset1]
work1.save!
work2.save!
end
Expand Down Expand Up @@ -63,8 +63,8 @@
let(:child_file_set_resource) { resource }

before do
work1.members = [fileset1]
work2.members = [fileset1]
work1.ordered_members = [fileset1]
work2.ordered_members = [fileset1]
work1.save!
work2.save!
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
let(:work) { resource }

before do
work1.members = [work2, work3, fileset1, fileset2]
work1.ordered_members = [work2, work3, fileset1, fileset2]
work1.save!
end

Expand Down Expand Up @@ -65,7 +65,7 @@
let(:work) { resource }

before do
work1.members = [work2, work3, fileset1, fileset2]
work1.ordered_members = [work2, work3, fileset1, fileset2]
work1.save!
end

Expand Down Expand Up @@ -96,7 +96,7 @@
let(:work) { resource }

before do
work1.members = [work2, work3, fileset1, fileset2]
work1.ordered_members = [work2, work3, fileset1, fileset2]
work1.save!
end

Expand Down Expand Up @@ -130,7 +130,7 @@
let(:work) { resource }

before do
work1.members = [work2, work3, fileset1, fileset2]
work1.ordered_members = [work2, work3, fileset1, fileset2]
work1.save!
end

Expand Down

0 comments on commit 6c30f5f

Please sign in to comment.