This rule was added in rubocop 1.37.0. It's particularly useful in the background image spec, since now there's one less backslash to decipher when reading the code :).
80 lines
2.9 KiB
Ruby
80 lines
2.9 KiB
Ruby
require "rails_helper"
|
|
|
|
describe Budgets::BudgetComponent do
|
|
let(:budget) { create(:budget) }
|
|
let(:heading) { create(:budget_heading, budget: budget) }
|
|
let(:user) { create(:user) }
|
|
|
|
before { sign_in(user) }
|
|
|
|
describe "budget header" do
|
|
it "shows budget name and link to help" do
|
|
budget.update!(phase: "informing")
|
|
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
page.find(".budget-header") do |header|
|
|
expect(header).to have_content "Participatory budgets"
|
|
expect(header).to have_content budget.name
|
|
expect(header).to have_link "Help with participatory budgets"
|
|
end
|
|
end
|
|
|
|
it "shows budget main link when defined" do
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
page.find(".budget-header") do |header|
|
|
expect(header).not_to have_css ".main-link"
|
|
end
|
|
|
|
budget.update!(main_link_text: "Participate now!", main_link_url: "https://consuldemocracy.org")
|
|
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
page.find(".budget-header") do |header|
|
|
expect(header).to have_link "Participate now!", href: "https://consuldemocracy.org",
|
|
class: "main-link"
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "budget image" do
|
|
it "does not show a background image when the budget has no image" do
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
expect(page).to have_css ".budget-header"
|
|
expect(page).not_to have_css ".with-background-image"
|
|
expect(page).not_to have_css ".budget-header[style*='background-image:']"
|
|
end
|
|
|
|
it "shows a background image when the bugdet image is defined" do
|
|
budget = create(:budget, :with_image)
|
|
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
expect(page).to have_css ".budget-header.with-background-image"
|
|
expect(page).to have_css ".budget-header[style*='background-image:'][style*='clippy.jpg']"
|
|
end
|
|
|
|
it "quotes the background image filename so it works with filenames with brackets" do
|
|
budget.update!(image: create(:image, attachment: fixture_file_upload("clippy(with_brackets).jpg")))
|
|
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
expect(page).to have_css ".budget-header.with-background-image"
|
|
expect(page).to have_css ".budget-header[style*='background-image:']" \
|
|
"[style*='url(\\''][style*='clippy(with_brackets).jpg\\'']"
|
|
end
|
|
|
|
it "escapes single quotes in the background image filename" do
|
|
budget.update!(image: create(:image, attachment: fixture_file_upload("clippy_with_'quotes'.jpg")))
|
|
|
|
render_inline Budgets::BudgetComponent.new(budget)
|
|
|
|
expect(page).to have_css ".budget-header.with-background-image"
|
|
expect(page).to have_css ".budget-header[style*='background-image:']" \
|
|
"[style*='url(\\''][style*='clippy_with_\\\\'quotes\\\\'.jpg']"
|
|
end
|
|
end
|
|
end
|