Files
nairobi/spec/models/widget/card_spec.rb
Javi Martín ee29ca43a5 Make widget cards polymorphic
So now we'll be able to add them to other sections.

We're also adding a `dependent: :destroy` relation to models having
cards since it doesn't make sense to have cards around when their page
has been destroyed.
2021-01-14 17:37:58 +01:00

45 lines
1.1 KiB
Ruby

require "rails_helper"
describe Widget::Card do
let(:card) { build(:widget_card) }
it_behaves_like "globalizable", :widget_card
context "validations" do
it "is valid" do
expect(card).to be_valid
end
it "is not valid without a title" do
expect(build(:widget_card, title: "")).not_to be_valid
end
end
describe "#header" do
it "returns header cards" do
header = create(:widget_card, header: true)
expect(Widget::Card.header).to eq([header])
end
it "does not return regular cards" do
create(:widget_card, header: false)
expect(Widget::Card.header).to be_empty
end
end
describe "#body" do
it "returns cards for the homepage body" do
header = create(:widget_card, header: true)
card1 = create(:widget_card, header: false)
card2 = create(:widget_card, header: false)
page_card = create(:widget_card, header: false, cardable: create(:site_customization_page))
expect(Widget::Card.body).to match_array [card1, card2]
expect(Widget::Card.body).not_to include(header)
expect(Widget::Card.body).not_to include(page_card)
end
end
end