Files
openfoodnetwork/spec/components/modal_component_spec.rb
Gaetan Craig-Riou 0a9b858f2a Add the ability to pass options ModalComponent
Now you can add another stimulus controller or action to the modal
2024-09-10 13:29:39 +10:00

37 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require "spec_helper"
RSpec.describe ModalComponent, type: :component do
it "renders default 'data-action' and 'data-controller'" do
render_inline(described_class.new(id: "test-id"))
expect(page).to have_selector "#test-id"
expect(page).to have_selector '[data-controller="modal"]'
expect(page).to have_selector '[data-action="keyup@document->modal#closeIfEscapeKey"]'
end
it "accepts html attributes options" do
render_inline(described_class.new(id: "test-id", 'data-test': "some data"))
expect(page).to have_selector "#test-id"
expect(page).to have_selector '[data-test="some data"]'
end
it "merges 'data-controller' attribute when present in options" do
render_inline(described_class.new(id: "test-id", 'data-controller': "other-controller"))
expect(page).to have_selector "#test-id"
expect(page).to have_selector '[data-controller="modal other-controller"]'
end
it "merges 'data-action' attribute when present in options" do
render_inline(described_class.new(id: "test-id", 'data-action': "click->other-controller#test"))
expect(page).to have_selector "#test-id"
expect(page).to have_selector(
'[data-action="keyup@document->modal#closeIfEscapeKey click->other-controller#test"]'
)
end
end