docbrown/spec/services/images/profile_spec.rb
Anna Buianova 20e242af0d
Rubocop fixes (#20254)
* Fixed redundant alls for rubocop

* Fixed rubocop violations in spec/requests

* Fixed rubocop violations in spec/models

* Fixed Performance/MapMethodChain

* Fixed rubocop violations in spec/requests

* Revert changes to FastlyConfig::Update spec
2023-10-18 17:24:28 -04:00

46 lines
1.4 KiB
Ruby

require "rails_helper"
RSpec.describe Images::Profile, type: :services do
describe ".for" do
subject(:returned_value) { described_class.for(:work) }
it { is_expected.to be_a(Module) }
context "when mixed in" do
subject(:object) { klass.new.tap { |k| k.the_image_url = "https://forem.com/image" } }
let(:klass) do
Class.new do
attr_accessor :the_image_url
include Images::Profile.for(:the_image_url)
end
end
it "creates a method" do
expect(object).to respond_to(:the_image_url_for)
end
it "forward delegate the method to Images::Profile.call" do
allow(described_class).to receive(:call)
object.the_image_url_for(length: 90)
expect(described_class).to have_received(:call).with(object.the_image_url, length: 90)
end
end
end
describe ".get" do
it "returns user profile_image_url" do
user = build_stubbed(:user)
expect(described_class.call(user.profile_image_url)).to eq(user.profile_image_url)
end
context "when user has no profile_image" do
it "returns backup image prefixed with Cloudinary", :cloudinary do
user = build_stubbed(:user, profile_image: nil)
correct_prefix = "/c_fill,f_auto,fl_progressive,h_120,q_auto,w_120/"
expect(described_class.call(user.profile_image_url)).to include(correct_prefix + described_class::BACKUP_LINK)
end
end
end
end