* Revert "Revert "[deploy] Switch decorators from Draper to Rails builtin decorations (#6040)" (#6122) [deploy]"
This reverts commit d438349550.
* Enable serialization for decorators
* Refactor and test default home feed serialization
* Improve spec
* Applied @vaidehijoshi suggestions
* Applied @citizen428 suggestions
* Make CodeClimate happy
* Cleanup stories_index_spec.rb
* Refactor UserDecorator#cached_followed_tags to loop less
41 lines
1.2 KiB
Ruby
41 lines
1.2 KiB
Ruby
require "rails_helper"
|
|
|
|
# ApplicationRecord is an abstract class, tests will use one of the core models
|
|
RSpec.describe ApplicationRecord, type: :model do
|
|
describe ".estimated_count" do
|
|
it "does not raise errors if there are no rows" do
|
|
expect { User.estimated_count }.not_to raise_error
|
|
end
|
|
end
|
|
|
|
describe "#decorate" do
|
|
it "decorates an object that has a decorator" do
|
|
sponsorship = build(:sponsorship)
|
|
expect(sponsorship.decorate).to be_a(SponsorshipDecorator)
|
|
end
|
|
|
|
it "raises an error if an object has no decorator" do
|
|
badge = build(:badge)
|
|
expect { badge.decorate }.to raise_error(UninferrableDecoratorError)
|
|
end
|
|
end
|
|
|
|
describe "#decorated?" do
|
|
it "returns false" do
|
|
sponsorship = build(:sponsorship)
|
|
expect(sponsorship.decorated?).to be(false)
|
|
end
|
|
end
|
|
|
|
describe ".decorate" do
|
|
before do
|
|
create(:sponsorship, level: :gold)
|
|
end
|
|
|
|
it "decorates a relation" do
|
|
decorated_collection = Sponsorship.gold.decorate
|
|
expect(decorated_collection.size).to eq(Sponsorship.gold.size)
|
|
expect(decorated_collection.first).to be_a(SponsorshipDecorator)
|
|
end
|
|
end
|
|
end
|