Skip to content

Commit

Permalink
Merge pull request #6555 from samvera/updates_valkyrie_characterizati…
Browse files Browse the repository at this point in the history
…on_service_spec

Valkyrizes `spec/services/hyrax/characterization/valkyrie_characterization_service_spec.rb`.
  • Loading branch information
dlpierce authored Jan 3, 2024
2 parents 57d5e0d + ad0a51f commit 7160e0e
Showing 1 changed file with 8 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,36 @@
require 'spec_helper'
require 'hyrax/specs/spy_listener'

# rubocop:disable RSpec/AnyInstance
RSpec.describe Hyrax::Characterization::ValkyrieCharacterizationService do
describe "run" do
let(:characterizer) { double(characterize: fits_response) }
let(:file_set) { FactoryBot.valkyrie_create(:hyrax_file_set) }
let(:fits_response) { IO.read('spec/fixtures/png_fits.xml') }
let(:listener) { Hyrax::Specs::SpyListener.new }
let(:metadata) { Hyrax.custom_queries.find_file_metadata_by(id: file.id) }
let(:upload) { Rack::Test::UploadedFile.new('spec/fixtures/world.png', 'image/png') }

let(:file) do
Hyrax.storage_adapter.upload(resource: file_set,
file: upload,
original_filename: 'test_world.png')
end
let(:file_set) { FactoryBot.valkyrie_create(:hyrax_file_set, files: [file_metadata], original_file: file_metadata) }
let(:file_metadata) { valkyrie_create(:file_metadata, :original_file, :with_file, file: file, mime_type: 'image/png') }
let(:file) { create(:uploaded_file, file: File.open('spec/fixtures/world.png')) }

before do
Hyrax.publisher.subscribe(listener)
metadata.file_set_id = file_set.id
described_class
.run(metadata: file_metadata, file: file_set.original_file.file, characterizer: characterizer)
end
after { Hyrax.publisher.unsubscribe(listener) }

describe '#run' do
it 'successfully sets the property values' do
described_class
.run(metadata: metadata, file: file, characterizer: characterizer)

expect(metadata)
expect(file_metadata)
.to have_attributes(compression: contain_exactly("Deflate/Inflate"),
format_label: contain_exactly("Portable Network Graphics"),
height: contain_exactly("50"),
width: contain_exactly("50"))
end

it 'publishes metadata updated for file metadata node' do
described_class
.run(metadata: metadata, file: file, characterizer: characterizer)

expect(listener.file_metadata_updated&.payload)
.to include(user: ::User.system_user,
metadata: metadata)
expect(listener.file_metadata_updated&.payload&.values&.map(&:id))
.to include(::User.system_user.id, file_metadata.id)
end
end
end
end
# rubocop:enable RSpec/AnyInstance

0 comments on commit 7160e0e

Please sign in to comment.