63 lines
1.9 KiB
Ruby
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
|