Files
grecia/spec/components/layout/cookies_consent/switch_component_spec.rb

63 lines
1.9 KiB
Ruby

require "rails_helper"
describe Layout::CookiesConsent::SwitchComponent do
let(:component) do
Layout::CookiesConsent::SwitchComponent.new(
"cookie_name",
label: "Accept Cookies",
description: "Enable or disable cookies for the site."
)
end
it "renders the switch component with the correct label and description" do
render_inline(component)
expect(page).to have_css ".name", text: "Accept Cookies"
expect(page).to have_css ".description", text: "Enable or disable cookies for the site."
expect(page).to have_css "input.switch-input[type='checkbox'][name='cookie_name']"
expect(page).not_to have_css "[type='checkbox'][checked]"
expect(page).not_to have_css "[type='checkbox'][disabled]"
end
it "renders the checkbox as checked when `checked` is true" do
render_inline(
Layout::CookiesConsent::SwitchComponent.new(
"cookie_name",
label: "Accept Cookies",
description: "Enable or disable cookies for the site.",
checked: true
)
)
expect(page).to have_css "input[type='checkbox'][checked]"
end
it "renders the checkbox as disabled when `disabled` is true" do
render_inline(
Layout::CookiesConsent::SwitchComponent.new(
"cookie_name",
label: "Accept Cookies",
description: "Enable or disable cookies for the site.",
disabled: true
)
)
expect(page).to have_css "input[type='checkbox'][disabled]"
end
it "renders the correct accessibility elements" do
render_inline(component)
expect(page).to have_field "Accept Cookies"
expect(page).to have_css "[aria-hidden]", exact_text: "Yes"
expect(page).to have_css "[aria-hidden]", exact_text: "No"
end
it "renders the yes and no states for the switch" do
render_inline(component)
expect(page).to have_css ".switch-active", text: "Yes"
expect(page).to have_css ".switch-inactive", text: "No"
end
end