Sha256: aa166a247a852f2ce6af46e650d81ee28f968acd3c3b28fa4ca7dae45653e542

Contents?: true

Size: 1.48 KB

Versions: 8

Compression:

Stored size: 1.48 KB

Contents

require 'spec_helper'

describe Sufia::Arkivo::MetadataMunger do
  subject { described_class.new(metadata) }

  let(:metadata) { JSON.parse(FactoryGirl.json(:post_item))['metadata'] }

  it 'makes camelCase symbols into underscored strings' do
    expect(metadata).to include('resourceType', 'dateCreated', 'basedNear')
    munged = subject.call
    expect(munged).not_to include('resourceType', 'dateCreated', 'basedNear')
    expect(munged).to include('resource_type', 'date_created', 'based_near')
  end

  it 'replaces url with related_url' do
    expect(metadata).to include('url')
    munged = subject.call
    expect(munged).not_to include('url')
    expect(munged).to include('related_url')
  end

  it 'replaces tags with tag' do
    expect(metadata).to include('tags')
    munged = subject.call
    expect(munged).not_to include('tags')
    expect(munged).to include('tag')
  end

  it 'replaces firstName and lastName with name' do
    expect(name_parts(metadata['creators']).count).to eq 4
    subject.call
    expect(name_parts(metadata['creators']).count).to eq 0
    expect(metadata['creators'].map { |c| c['name'] }.compact.count).to eq 4
  end

  it 'segregates creators and contributors' do
  end

  it 'deletes the original creators array' do
    expect(metadata['creators']).not_to be_nil
    munged = subject.call
    expect(munged['creators']).to be_nil
  end

  def name_parts(creators)
    creators.map { |c| c['firstName'] }.compact + creators.map { |c| c['lastName'] }.compact
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sufia-6.7.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.6.1 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.6.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.5.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.4.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.3.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.2.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb
sufia-6.1.0 spec/lib/sufia/arkivo/metadata_munger_spec.rb