diaspora/spec/presenters/photo_presenter_spec.rb
Dennis Schubert bf55d07580
Re-add sizes.raw to the photo JSON
because we need it for showing the raw image in the lightbox. This got lost, as the photo extension was made after API development started.
2020-02-04 14:38:49 +01:00

40 lines
1.3 KiB
Ruby

# frozen_string_literal: true
describe PhotoPresenter do
before do
@photo = bob.post(:photo, pending: true, user_file: File.open(photo_fixture_name), to: "all")
end
it "presents limited API JSON" do
photo_json = PhotoPresenter.new(@photo).as_api_json(false)
expect(photo_json.has_key?(:guid)).to be_falsey
end
it "presents full API JSON" do
photo_json = PhotoPresenter.new(@photo).as_api_json(true)
expect(photo_json[:guid]).to eq(@photo.guid)
confirm_photo_format(photo_json, @photo)
end
it "defaults to limited API JSON" do
photo_json_limited = PhotoPresenter.new(@photo).as_api_json(false)
photo_json_default = PhotoPresenter.new(@photo).as_api_json
expect(photo_json_limited).to eq(photo_json_default)
end
# rubocop:disable Metrics/AbcSize
def confirm_photo_format(photo, ref_photo)
if ref_photo.status_message_guid
expect(photo[:post]).to eq(ref_photo.status_message_guid)
else
expect(photo.has_key?(:post)).to be_falsey
end
expect(photo[:dimensions].has_key?(:height)).to be_truthy
expect(photo[:dimensions].has_key?(:width)).to be_truthy
expect(photo[:sizes][:small]).to be_truthy
expect(photo[:sizes][:medium]).to be_truthy
expect(photo[:sizes][:large]).to be_truthy
expect(photo[:sizes][:raw]).to be_truthy
end
# rubocop:enable Metrics/AbcSize
end