Files
nairobi/spec/models/budget/content_block_spec.rb
Javi Martín 0911b89d16 Add name attribute to heading content blocks
This way we can simplify the code and don't have to rely on `.try`
statements which are confusing and so we don't allow them in the
`Rails/SafeNavigation` Rubocop rule.
2021-02-05 17:46:23 +01:00

37 lines
1.0 KiB
Ruby

require "rails_helper"
describe Budget::ContentBlock do
let(:block) { build(:heading_content_block) }
it "is valid" do
expect(block).to be_valid
end
it "Heading is unique per locale" do
heading_content_block_en = create(:heading_content_block, locale: "en")
invalid_block = build(:heading_content_block,
heading: heading_content_block_en.heading, locale: "en")
expect(invalid_block).to be_invalid
expect(invalid_block.errors.full_messages).to include("Heading has already been taken")
valid_block = build(:heading_content_block,
heading: heading_content_block_en.heading, locale: "es")
expect(valid_block).to be_valid
end
describe "#name" do
it "uses the heading name" do
block = Budget::ContentBlock.new(heading: Budget::Heading.new(name: "Central"))
expect(block.name).to eq "Central"
end
it "returns nil on new records without heading" do
block = Budget::ContentBlock.new
expect(block.name).to be_nil
end
end
end