From baaace4ae3e1f15831021ad715f4f2497f3bdcbe Mon Sep 17 00:00:00 2001 From: Morgan Roderick Date: Wed, 15 Jul 2026 07:48:47 +0200 Subject: [PATCH] fix: escape venue/sponsor names with apostrophes in CSS selectors Faker-generated venue and sponsor names can contain apostrophes (e.g. "Simon O'Connell"), which break single-quoted CSS attribute selectors like `img[alt='...']`. This causes a Nokogiri::CSS::SyntaxError. Switch to double-quoted CSS attribute selectors via Ruby %(...) literal syntax, which handles apostrophes without escaping. --- spec/components/event_card_component_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/components/event_card_component_spec.rb b/spec/components/event_card_component_spec.rb index 9fd10b581..496a5f9d9 100644 --- a/spec/components/event_card_component_spec.rb +++ b/spec/components/event_card_component_spec.rb @@ -40,7 +40,7 @@ it "renders venue image for meetings" do render_inline(described_class.new(event_card: presenter)) - expect(page).to have_css("img[alt='#{meeting.venue.name}']") + expect(page).to have_css(%(img[alt="#{meeting.venue.name}"])) end it "does not render sponsor logos for meetings" do @@ -64,7 +64,7 @@ sponsor = Fabricate(:sponsor) event.sponsors << sponsor render_inline(described_class.new(event_card: presenter)) - expect(page).to have_css("img[alt='#{sponsor.name}']") + expect(page).to have_css(%(img[alt="#{sponsor.name}"])) end end