blob: 6c4b475b4de04edc3aced6933222b2441d1d7b43 [file] [log] [blame]
"""Unit tests for json marshaling.
Note, this cannot live next to the file it tests, because that file is in
third_party bazel rules, and bazel doesn't support skylark testing yet.
"""
load("//third_party/bazel_skylib/lib:unittest.bzl", "asserts", "unittest")
load("//third_party/bazel_rules/rules_typescript/internal:common/json_marshal.bzl", "json_marshal")
def _test_impl(ctx):
env = unittest.begin(ctx)
asserts.equals(env, "\"abc\"", json_marshal("abc"))
asserts.equals(env, "123", json_marshal(123))
asserts.equals(env, "true", json_marshal(True))
asserts.equals(env, "false", json_marshal(False))
asserts.equals(env, "\"//a:b\"", json_marshal(Label("//a:b")))
asserts.equals(env, "[]", json_marshal([]))
asserts.equals(env, "{}", json_marshal({}))
asserts.equals(env, """[1, 2, 3]""", json_marshal([1, 2, 3]))
asserts.equals(env, """{"a": "b"}""", json_marshal({"a": "b"}))
asserts.equals(env, """{"none": false}""", json_marshal({"none": None}))
asserts.equals(
env,
"""{"a": {"d": 1, "e": true, "f": ["f1", "f2"]}, "b": "val", "c": [{"g": false}]}""",
json_marshal({"a": {"d": 1, "e": True, "f": ["f1", "f2"]}, "b": "val", "c": [{"g": False}]}),
)
return unittest.end(env)
_test = unittest.make(_test_impl)
def json_marshal_test_suite():
unittest.suite("json_marshal_tests", _test)