@@ -19,25 +19,31 @@ Deno.test("isRequiredOf<T>", async (t) => {
1919 } ) ;
2020
2121 await t . step ( "returns true on Required<T> object" , ( ) => {
22+ assertEquals ( isRequiredOf ( pred ) ( { a : 0 , b : "a" , c : true , d : "a" } ) , true ) ;
2223 assertEquals (
23- isRequiredOf ( pred ) ( { a : undefined , b : undefined , c : undefined } ) ,
24- false ,
25- "Object does not have required properties" ,
26- ) ;
27- assertEquals (
28- isRequiredOf ( pred ) ( { } ) ,
29- false ,
30- "Object does not have required properties" ,
24+ isRequiredOf ( pred ) ( { a : 0 , b : undefined , c : true , d : "a" } ) ,
25+ true ,
26+ "Union type contains 'undefined'" ,
3127 ) ;
3228 } ) ;
3329
3430 await t . step ( "returns false on non Required<T> object" , ( ) => {
3531 assertEquals ( isRequiredOf ( pred ) ( "a" ) , false , "Value is not an object" ) ;
3632 assertEquals (
37- isRequiredOf ( pred ) ( { a : 0 , b : "a" , c : " " } ) ,
33+ isRequiredOf ( pred ) ( { a : 0 , b : "a" , c : 0 , d : "a " } ) ,
3834 false ,
3935 "Object have a different type property" ,
4036 ) ;
37+ assertEquals (
38+ isRequiredOf ( pred ) ( { a : 0 , b : "a" , d : "a" } ) ,
39+ false ,
40+ "Object does not have required properties" ,
41+ ) ;
42+ assertEquals (
43+ isRequiredOf ( pred ) ( { a : 0 , b : "a" , c : undefined , d : "a" } ) ,
44+ false ,
45+ "Optional property that converted to required is 'undefined'" ,
46+ ) ;
4147 } ) ;
4248
4349 await t . step ( "predicated type is correct" , ( ) => {
@@ -69,24 +75,33 @@ Deno.test("isRequiredOf<T>", async (t) => {
6975
7076 await t . step ( "returns true on Required<T> object" , ( ) => {
7177 assertEquals (
72- isRequiredOf ( pred ) ( { a : undefined , [ b ] : undefined , [ c ] : undefined } ) ,
73- false ,
74- "Object does not have required properties" ,
78+ isRequiredOf ( pred ) ( { a : 0 , [ b ] : "a" , [ c ] : true , [ d ] : "a" } ) ,
79+ true ,
7580 ) ;
7681 assertEquals (
77- isRequiredOf ( pred ) ( { } ) ,
78- false ,
79- "Object does not have required properties " ,
82+ isRequiredOf ( pred ) ( { a : 0 , [ b ] : undefined , [ c ] : true , [ d ] : "a" } ) ,
83+ true ,
84+ "Union type contains 'undefined' " ,
8085 ) ;
8186 } ) ;
8287
8388 await t . step ( "returns false on non Required<T> object" , ( ) => {
8489 assertEquals ( isRequiredOf ( pred ) ( "a" ) , false , "Value is not an object" ) ;
8590 assertEquals (
86- isRequiredOf ( pred ) ( { a : 0 , [ b ] : "a" , [ c ] : " " } ) ,
91+ isRequiredOf ( pred ) ( { a : 0 , [ b ] : "a" , [ c ] : 0 , [ d ] : "a " } ) ,
8792 false ,
8893 "Object have a different type property" ,
8994 ) ;
95+ assertEquals (
96+ isRequiredOf ( pred ) ( { a : 0 , [ b ] : "a" , [ d ] : "a" } ) ,
97+ false ,
98+ "Object does not have required properties" ,
99+ ) ;
100+ assertEquals (
101+ isRequiredOf ( pred ) ( { a : 0 , [ b ] : "a" , [ c ] : undefined , [ d ] : "a" } ) ,
102+ false ,
103+ "Optional property that converted to required is 'undefined'" ,
104+ ) ;
90105 } ) ;
91106
92107 await t . step ( "predicated type is correct" , ( ) => {
0 commit comments