diaspora/spec/presenters/photo_presenter_spec.rb
2019-04-27 16:03:55 +02:00

39 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
end
# rubocop:enable Metrics/AbcSize
end