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.
40 lines
1.3 KiB
Ruby
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
|