import datetime, decimal from sync.serialize import to_jsonable import json def test_datetime_iso(): assert to_jsonable(datetime.datetime(2026,7,14,8,41,18)) == "2026-07-14T08:41:18" def test_bool_preserved(): assert to_jsonable(True) is True and to_jsonable(False) is False def test_decimal_to_str(): assert to_jsonable(decimal.Decimal("12.50")) == "12.50" def test_none_and_numbers(): assert to_jsonable(None) is None assert to_jsonable(5) == 5 assert to_jsonable("x") == "x" def test_dict_serializes(): d = {"d": datetime.date(2026,1,1), "b": True, "n": None} assert json.loads(json.dumps({k: to_jsonable(v) for k,v in d.items()})) == {"d":"2026-01-01","b":True,"n":None}