docbrown/spec/models/application_record_spec.rb
rhymes bc385ae6d5
Switch decorators to Rails builtin decorations - take 2 (#6125) [deploy]
* 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
2020-02-19 15:30:53 -05:00

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