+ <%= f.label :font_color, nil, for: "font_color_input", id: "font_color_label" %>
- <%= f.text_field :font_color, label: false, type: :color %>
+ <%= f.text_field :font_color, label: false, type: :color, "aria-labelledby": "font_color_label" %>
<%= f.text_field :font_color, label: false, id: "font_color_input" %>
diff --git a/spec/components/admin/banners/form_component_spec.rb b/spec/components/admin/banners/form_component_spec.rb
new file mode 100644
index 000000000..ccfae6b05
--- /dev/null
+++ b/spec/components/admin/banners/form_component_spec.rb
@@ -0,0 +1,38 @@
+require "rails_helper"
+
+describe Admin::Banners::FormComponent do
+ let(:banner) { build(:banner) }
+ let(:component) { Admin::Banners::FormComponent.new(banner) }
+
+ describe "background color fields" do
+ it "renders two inputs sharing the same label" do
+ render_inline component
+
+ page.find(".background-color-inputs") do |color_inputs|
+ expect(color_inputs).to have_css "input", count: 2
+ expect(color_inputs).to have_css "label", count: 1
+
+ expect(color_inputs).to have_css "label#background_color_label[for=background_color_input]"
+ expect(color_inputs.all("input")[0][:"aria-labelledby"]).to eq "background_color_label"
+ expect(color_inputs.all("input")[0][:id]).not_to eq "background_color_input"
+ expect(color_inputs.all("input")[1][:id]).to eq "background_color_input"
+ end
+ end
+ end
+
+ describe "font color fields" do
+ it "renders two inputs sharing the same label" do
+ render_inline component
+
+ page.find(".font-color-inputs") do |color_inputs|
+ expect(color_inputs).to have_css "input", count: 2
+ expect(color_inputs).to have_css "label", count: 1
+
+ expect(color_inputs).to have_css "label#font_color_label[for=font_color_input]"
+ expect(color_inputs.all("input")[0][:"aria-labelledby"]).to eq "font_color_label"
+ expect(color_inputs.all("input")[0][:id]).not_to eq "font_color_input"
+ expect(color_inputs.all("input")[1][:id]).to eq "font_color_input"
+ end
+ end
+ end
+end
diff --git a/spec/components/admin/geozones/form_component_spec.rb b/spec/components/admin/geozones/form_component_spec.rb
new file mode 100644
index 000000000..cd236efcb
--- /dev/null
+++ b/spec/components/admin/geozones/form_component_spec.rb
@@ -0,0 +1,22 @@
+require "rails_helper"
+
+describe Admin::Geozones::FormComponent do
+ let(:geozone) { build(:geozone) }
+ let(:component) { Admin::Geozones::FormComponent.new(geozone) }
+
+ describe "color fields" do
+ it "renders two inputs sharing the same label" do
+ render_inline component
+
+ page.find(".color-inputs") do |color_inputs|
+ expect(color_inputs).to have_css "input", count: 2
+ expect(color_inputs).to have_css "label", count: 1
+
+ expect(color_inputs).to have_css "label#color_label[for=color_input]"
+ expect(color_inputs.all("input")[0][:"aria-labelledby"]).to eq "color_label"
+ expect(color_inputs.all("input")[0][:id]).not_to eq "color_input"
+ expect(color_inputs.all("input")[1][:id]).to eq "color_input"
+ end
+ end
+ end
+end
diff --git a/spec/components/admin/legislation/processes/form_component_spec.rb b/spec/components/admin/legislation/processes/form_component_spec.rb
new file mode 100644
index 000000000..dbc6204ef
--- /dev/null
+++ b/spec/components/admin/legislation/processes/form_component_spec.rb
@@ -0,0 +1,38 @@
+require "rails_helper"
+
+describe Admin::Legislation::Processes::FormComponent, :admin do
+ let(:process) { build(:legislation_process) }
+ let(:component) { Admin::Legislation::Processes::FormComponent.new(process) }
+
+ describe "background color fields" do
+ it "renders two inputs sharing the same label" do
+ render_inline component
+
+ page.find(".background-color-inputs") do |color_inputs|
+ expect(color_inputs).to have_css "input", count: 2
+ expect(color_inputs).to have_css "label", count: 1
+
+ expect(color_inputs).to have_css "label#background_color_label[for=background_color_input]"
+ expect(color_inputs.all("input")[0][:"aria-labelledby"]).to eq "background_color_label"
+ expect(color_inputs.all("input")[0][:id]).not_to eq "background_color_input"
+ expect(color_inputs.all("input")[1][:id]).to eq "background_color_input"
+ end
+ end
+ end
+
+ describe "font color fields" do
+ it "renders two inputs sharing the same label" do
+ render_inline component
+
+ page.find(".font-color-inputs") do |color_inputs|
+ expect(color_inputs).to have_css "input", count: 2
+ expect(color_inputs).to have_css "label", count: 1
+
+ expect(color_inputs).to have_css "label#font_color_label[for=font_color_input]"
+ expect(color_inputs.all("input")[0][:"aria-labelledby"]).to eq "font_color_label"
+ expect(color_inputs.all("input")[0][:id]).not_to eq "font_color_input"
+ expect(color_inputs.all("input")[1][:id]).to eq "font_color_input"
+ end
+ end
+ end
+end