@@ -24,8 +24,13 @@ class CompactPrinterSpec extends Specification {
2424 " print JsNull to 'null'" in {
2525 CompactPrinter (JsNull ) mustEqual " null"
2626 }
27- " print JsUndefined to 'undefined'" in {
28- CompactPrinter (JsUndefined ) mustEqual " undefined"
27+ " throw exception when printing JsUndefined" in {
28+ try {
29+ CompactPrinter (JsUndefined ) mustEqual " undefined"
30+ } catch {
31+ case ise : IllegalStateException =>
32+ ise.getMessage mustEqual " Cannot display JsUndefined"
33+ }
2934 }
3035 " print JsTrue to 'true'" in {
3136 CompactPrinter (JsTrue ) mustEqual " true"
@@ -67,9 +72,17 @@ class CompactPrinterSpec extends Specification {
6772 CompactPrinter (JsObject (" key" -> JsNumber (42 ), " key2" -> JsString (" value" )))
6873 mustEqual """ {"key":42,"key2":"value"}"""
6974 )
75+ " properly print a simple JsObject with undefined values" in (
76+ CompactPrinter (JsObject (" key" -> JsNumber (42 ), " key2" -> JsString (" value" ), " key3" -> JsUndefined ))
77+ mustEqual """ {"key":42,"key2":"value"}"""
78+ )
79+ " properly print a simple JsObject with only undefined values" in (
80+ CompactPrinter (JsObject (" key" -> JsUndefined , " key2" -> JsUndefined ))
81+ mustEqual " {}"
82+ )
7083 " properly print a simple JsArray" in (
71- CompactPrinter (JsArray (JsNull , JsUndefined , JsNumber (1.23 ), JsObject (" key" -> JsBoolean (true ))))
72- mustEqual """ [null,undefined, 1.23,{"key":true}]"""
84+ CompactPrinter (JsArray (JsNull , JsNumber (1.23 ), JsObject (" key" -> JsBoolean (true ))))
85+ mustEqual """ [null,1.23,{"key":true}]"""
7386 )
7487 " properly print a JSON padding (JSONP) if requested" in {
7588 CompactPrinter (JsTrue , Some (" customCallback" )) mustEqual(" customCallback(true)" )
0 commit comments