Skip to content

Commit

Permalink
Ensure formatted json encoding for nil (#94)
Browse files Browse the repository at this point in the history
  • Loading branch information
bcardarella authored Dec 18, 2024
1 parent 62ca0d1 commit b4b3b9e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
3 changes: 3 additions & 0 deletions lib/live_view_native/stylesheet/encoder.ex
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ defmodule LiveViewNative.Stylesheet.Encoder do
def format({name, value}, encoder, state) when is_atom(name),
do: :json.format_value(%{{name, value}}, encoder, state)

def format(nil, _encoder, _state),
do: ~c(null)

def format(atom, encoder, state) when is_atom(atom) do
cond do
Code.ensure_loaded?(atom) ->
Expand Down
12 changes: 10 additions & 2 deletions test/live_view_native/stylesheet/encoder_test.exs
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
defmodule LiveViewNative.Stylesheet.EncoderTest do
use ExUnit.Case

test "nil" do
assert :json.encode(nil, &LiveViewNative.Stylesheet.Encoder.encode/2) == ~c(null)
describe "encoder" do
test "nil" do
assert :json.encode(nil, &LiveViewNative.Stylesheet.Encoder.encode/2) == ~c(null)
end
end

describe "formatter" do
test "nil" do
assert :json.format(nil, &LiveViewNative.Stylesheet.Encoder.format/3) == [~c(null), ?\n]
end
end
end

0 comments on commit b4b3b9e

Please sign in to comment.