Skip to content

Commit a71e49b

Browse files
authored
Cast level argument of console_log action always to string (#24)
* Cast `level` argument to `console_log` action always to string * Also allow `console_log` arguments to be passed as kwargs * Add tests for additionl argument * Add test for using both args and kwargs * pass level arguments as symbols * Move `Symbol` -> `String` casting to `AttributeTransformations` * Swap out `Symbol#name` to `Symbol#to_s` since it's not available in 2.7
1 parent f4cecc3 commit a71e49b

File tree

3 files changed

+55
-2
lines changed

3 files changed

+55
-2
lines changed

lib/turbo_power/attribute_transformations.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def transform_value(value)
1818
case value
1919
when String
2020
value
21+
when Symbol
22+
value.to_s
2123
when NilClass
2224
""
2325
else

lib/turbo_power/stream_helper.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ def replace_state(url, title = nil, state = nil, **attributes)
181181

182182
# Debug Actions
183183

184-
def console_log(message, level = :log, **attributes)
185-
custom_action :console_log, attributes: attributes.merge(message: message, level: level)
184+
def console_log(message = nil, level = :log, **attributes)
185+
custom_action :console_log, attributes: attributes.reverse_merge(message: message, level: level)
186186
end
187187

188188
def console_table(data, columns, **attributes)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# frozen_string_literal: true
2+
3+
require "test_helper"
4+
5+
module TurboPower
6+
module StreamHelper
7+
class ConsoleLogTest < StreamHelperTestCase
8+
test "console_log" do
9+
stream = %(<turbo-stream level="log" message="Message" action="console_log"><template></template></turbo-stream>)
10+
11+
assert_dom_equal stream, turbo_stream.console_log("Message")
12+
end
13+
14+
test "console_log with message as kwargs" do
15+
stream = %(<turbo-stream level="log" message="Message" action="console_log"><template></template></turbo-stream>)
16+
17+
assert_dom_equal stream, turbo_stream.console_log(message: "Message")
18+
end
19+
20+
test "console_log with message and level" do
21+
stream = %(<turbo-stream level="warn" message="Message" action="console_log"><template></template></turbo-stream>)
22+
23+
assert_dom_equal stream, turbo_stream.console_log("Message", "warn")
24+
end
25+
26+
test "console_log with message and level as kwargs" do
27+
stream = %(<turbo-stream level="warn" message="Message" action="console_log"><template></template></turbo-stream>)
28+
29+
assert_dom_equal stream, turbo_stream.console_log(message: "Message", level: :warn)
30+
end
31+
32+
test "console_log with message as positional arg and level as kwarg" do
33+
stream = %(<turbo-stream level="warn" message="Message" action="console_log"><template></template></turbo-stream>)
34+
35+
assert_dom_equal stream, turbo_stream.console_log("Message", level: :warn)
36+
end
37+
38+
test "console_log with message/level as positional arg and kwarg" do
39+
stream = %(<turbo-stream message="Better Message" level="error" action="console_log"><template></template></turbo-stream>)
40+
41+
assert_dom_equal stream, turbo_stream.console_log("Message", "warn", message: "Better Message", level: :error)
42+
end
43+
44+
test "console_log with additional arguments" do
45+
stream = %(<turbo-stream level="warn" message="Message" something="else" action="console_log"><template></template></turbo-stream>)
46+
47+
assert_dom_equal stream, turbo_stream.console_log("Message", level: :warn, something: "else")
48+
end
49+
end
50+
end
51+
end

0 commit comments

Comments
 (0)