We were very inconsistent regarding these rules. Personally I prefer no empty lines around blocks, clases, etc... as recommended by the Ruby style guide [1], and they're the default values in rubocop, so those are the settings I'm applying. The exception is the `private` access modifier, since we were leaving empty lines around it most of the time. That's the default rubocop rule as well. Personally I don't have a strong preference about this one. [1] https://rubystyle.guide/#empty-lines-around-bodies
41 lines
1.0 KiB
Ruby
41 lines
1.0 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
|
|
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, page: 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
|