Skip to content

Commit 9ae963d

Browse files
committed
Fix implementation and tests
1 parent 98318e0 commit 9ae963d

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

lib/turbo_power/stream_helper.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ def toggle_css_class(targets = nil, classes = "", **attributes)
113113
custom_action_all :toggle_css_class, targets: targets, attributes: attributes.merge(classes: classes)
114114
end
115115

116-
def toggle_attribute(targets = nil, attribute = "", force = nil, **attributes)
116+
def toggle_attribute(targets = nil, attribute = "", force = "false", **attributes)
117117
attribute = attributes[:attribute] || attribute
118118
force = attributes[:force] || force
119119

120-
custom_action_all :toggle_css_class, targets: targets, attributes: attributes.merge(attribute: attribute, force: force)
120+
custom_action_all :toggle_attribute, targets: targets, attributes: attributes.merge(attribute: attribute, force: force)
121121
end
122122

123123
def replace_css_class(targets = nil, from = "", to = "", **attributes)

test/turbo_power/stream_helper/toggle_attribute_test.rb

+20-8
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,43 @@ module TurboPower
66
module StreamHelper
77
class ToggleAttributeTest < StreamHelperTestCase
88
test "toggle_attribute" do
9-
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled"><template></template></turbo-stream>)
9+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" force="false"><template></template></turbo-stream>)
1010

1111
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", "disabled")
1212
end
1313

1414
test "toggle_attribute with targets and attribute as kwargs" do
15-
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled"><template></template></turbo-stream>)
15+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" force="false"><template></template></turbo-stream>)
1616

1717
assert_dom_equal stream, turbo_stream.toggle_attribute(targets: "#element", attribute: "disabled")
1818
end
1919

2020
test "toggle_attribute with target and attribute as kwargs" do
21-
stream = %(<turbo-stream target="element" action="toggle_attribute" attribute="disabled"><template></template></turbo-stream>)
21+
stream = %(<turbo-stream target="element" action="toggle_attribute" attribute="disabled" force="false"><template></template></turbo-stream>)
2222

2323
assert_dom_equal stream, turbo_stream.toggle_attribute(target: "element", attribute: "disabled")
2424
end
2525

2626
test "toggle_attribute with attribute and targets as kwargs" do
27-
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled"><template></template></turbo-stream>)
27+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" force="false"><template></template></turbo-stream>)
2828

2929
assert_dom_equal stream, turbo_stream.toggle_attribute(attribute: "disabled", targets: "#element")
3030
end
3131

3232
test "toggle_attribute with targets as positional arg and attribute as kwarg" do
33-
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled"><template></template></turbo-stream>)
33+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" force="false"><template></template></turbo-stream>)
3434

3535
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", attribute: "disabled")
3636
end
3737

3838
test "toggle_attribute with targets/attribute as positional arg and kwarg" do
39-
stream = %(<turbo-stream targets="#better-input" action="toggle_attribute" attribute="disabled"><template></template></turbo-stream>)
39+
stream = %(<turbo-stream targets="#better-input" action="toggle_attribute" attribute="other-disabled" force="false"><template></template></turbo-stream>)
4040

41-
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", attribute: "disabled", targets: "#better-input", attribute: "disabled")
41+
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", "disabled", targets: "#better-input", attribute: "other-disabled")
4242
end
4343

4444
test "toggle_attribute with additional arguments" do
45-
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" something="else"><template></template></turbo-stream>)
45+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" something="else" force="false"><template></template></turbo-stream>)
4646

4747
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", attribute: "disabled", something: "else")
4848
end
@@ -64,6 +64,18 @@ class ToggleAttributeTest < StreamHelperTestCase
6464

6565
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", attribute: "disabled", force: "true")
6666
end
67+
68+
test "toggle_attribute with force as boolean (true)" do
69+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" force="true"><template></template></turbo-stream>)
70+
71+
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", attribute: "disabled", force: true)
72+
end
73+
74+
test "toggle_attribute with force as boolean (false)" do
75+
stream = %(<turbo-stream targets="#element" action="toggle_attribute" attribute="disabled" force="false"><template></template></turbo-stream>)
76+
77+
assert_dom_equal stream, turbo_stream.toggle_attribute("#element", attribute: "disabled", force: false)
78+
end
6779
end
6880
end
6981
end

0 commit comments

Comments
 (0)