Sha256: bc3dde2419239b39a6472c808e93cabd249f0c8aa605e737876acabe8b4ecb79

Contents?: true

Size: 1.54 KB

Versions: 2

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

RSpec.describe CurationConcerns::DataMigration::CollectionsMigration do
  let(:collection1) { create(:collection, id: 'alien', title: ['alien movies']) }
  let(:collection2) { create(:collection, id: 'predator', title: ['predator movies']) }
  let(:work1) { create(:work, title: ['alien resurrection']) }
  let(:work2) { create(:work, title: ['the predator']) }
  let(:work3) { create(:work, title: ['alien vs. predator']) }

  before do
    collection1.members = [work1, work3]
    collection2.members = [work2, work3]
  end

  describe '.run' do
    it 'moves relationship from collection#members to curation_concern#member_of_collections' do
      expect(collection1.members.to_a.size).to eq 2
      expect(collection2.members.to_a.size).to eq 2
      expect(work1.member_of_collections.to_a.size).to eq 0
      expect(work2.member_of_collections.to_a.size).to eq 0
      expect(work3.member_of_collections.to_a.size).to eq 0
      described_class.run
      expect(collection1.reload.members.to_a.size).to eq 0
      expect(collection2.reload.members.to_a.size).to eq 0
      expect(work1.reload.member_of_collections.to_a.size).to eq 1
      expect(work1.member_of_collection_ids.first).to eq 'alien'
      expect(work2.reload.member_of_collections.to_a.size).to eq 1
      expect(work2.member_of_collection_ids.first).to eq 'predator'
      expect(work3.reload.member_of_collections.to_a.size).to eq 2
      expect(work3.member_of_collection_ids).to include 'predator'
      expect(work3.member_of_collection_ids).to include 'alien'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
curation_concerns-2.0.0 spec/lib/curation_concerns/data_migration/collections_migration_spec.rb
curation_concerns-2.0.0.rc2 spec/lib/curation_concerns/data_migration/collections_migration_spec.rb