* Avoid using robohash for article cover images If their service slows down, loading the cover image times out in system tests. Use a locally served image file instead. * Specify expected image format for view object test We were relying on the internals of Faker to return a robohash.org url and checking that we included that in the cloudinary url. Rather than relying on the default behavior, explicitly pass a robohash url in the main image for this spec.
32 lines
2 KiB
Ruby
32 lines
2 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe CloudCoverUrl, type: :view_object, cloudinary: true do
|
|
let(:article) { create(:article, main_image: "https://robohash.org/articlefactory.png") }
|
|
let(:cloudinary_prefix) { "https://res.cloudinary.com/#{Cloudinary.config.cloud_name}/image/fetch/" }
|
|
|
|
it "returns proper url" do
|
|
expect(described_class.new(article.main_image).call)
|
|
.to start_with(cloudinary_prefix)
|
|
.and include("/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://robohash.org/")
|
|
end
|
|
|
|
it "returns proper url when nested cloudinary" do
|
|
image_url = "https://res.cloudinary.com/practicaldev/image/fetch/s--A-gun7rr--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://res.cloudinary.com/practicaldev/image/fetch/s--hcD8ZkbP--/c_imagga_scale%2Cf_auto%2Cfl_progressive%2Ch_420%2Cq_auto%2Cw_1000/https://dev-to-uploads.s3.amazonaws.com/i/th93d625o27nuz63oeen.png" # rubocop:disable Layout/LineLength
|
|
cloudinary_string = "/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/i/th93d625o27nuz63oeen.png" # rubocop:disable Layout/LineLength
|
|
|
|
article.update_column(:main_image, image_url)
|
|
expect(described_class.new(article.main_image).call)
|
|
.to start_with(cloudinary_prefix)
|
|
.and end_with(cloudinary_string)
|
|
end
|
|
|
|
it "returns proper url when single cloudinary" do
|
|
image_url = "https://res.cloudinary.com/practicaldev/image/fetch/s--hcD8ZkbP--/c_imagga_scale%2Cf_auto%2Cfl_progressive%2Ch_420%2Cq_auto%2Cw_1000/https://dev-to-uploads.s3.amazonaws.com/i/th93d625o27nuz63oeen.png" # rubocop:disable Layout/LineLength
|
|
cloudinary_string = "/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/i/th93d625o27nuz63oeen.png" # rubocop:disable Layout/LineLength
|
|
|
|
article.update_column(:main_image, image_url)
|
|
expect(described_class.new(article.main_image).call)
|
|
.to start_with(cloudinary_prefix)
|
|
.and end_with(cloudinary_string)
|
|
end
|
|
end
|