@@ -657,6 +657,78 @@ modes.forEach((logic) => {
657657 expect ( answer2 ) . toStrictEqual ( [ ] )
658658 } )
659659
660+ test ( 'length string' , async ( ) => {
661+ const answer = await logic . run ( {
662+ length : 'hello'
663+ } )
664+
665+ expect ( answer ) . toStrictEqual ( 5 )
666+ } )
667+
668+ test ( 'length array' , async ( ) => {
669+ const answer = await logic . run ( {
670+ length : [ 'hello' ]
671+ } )
672+
673+ expect ( answer ) . toStrictEqual ( 1 )
674+ } )
675+
676+ test ( 'length object (2 keys)' , async ( ) => {
677+ const answer = await logic . run ( {
678+ length : { preserve : { a : 1 , b : 2 } }
679+ } )
680+
681+ expect ( answer ) . toStrictEqual ( 2 )
682+ } )
683+
684+ test ( 'length object (1 keys)' , async ( ) => {
685+ const answer = await logic . run ( {
686+ length : { preserve : { a : 1 } }
687+ } )
688+
689+ expect ( answer ) . toStrictEqual ( 1 )
690+ } )
691+
692+ test ( 'get from array' , async ( ) => {
693+ const answer = await logic . run ( {
694+ get : [ [ 'hi' ] , 'length' ]
695+ } )
696+
697+ expect ( answer ) . toStrictEqual ( 1 )
698+ } )
699+
700+ test ( 'get from object' , async ( ) => {
701+ const answer = await logic . run ( {
702+ get : [ { preserve : { a : 1 } } , 'a' ]
703+ } )
704+
705+ expect ( answer ) . toStrictEqual ( 1 )
706+ } )
707+
708+ test ( 'get from object default' , async ( ) => {
709+ const answer = await logic . run ( {
710+ get : [ { preserve : { } } , 'a' , 5 ]
711+ } )
712+
713+ expect ( answer ) . toStrictEqual ( 5 )
714+ } )
715+
716+ test ( 'length object (0 keys)' , async ( ) => {
717+ const answer = await logic . run ( {
718+ length : { preserve : { } }
719+ } )
720+
721+ expect ( answer ) . toStrictEqual ( 0 )
722+ } )
723+
724+ test ( 'length object (null)' , async ( ) => {
725+ const answer = await logic . run ( {
726+ length : { preserve : null }
727+ } )
728+
729+ expect ( answer ) . toStrictEqual ( 0 )
730+ } )
731+
660732 test ( 'merge' , async ( ) => {
661733 const answer = await logic . run ( {
662734 merge : [ { preserve : [ 'b' ] } , { preserve : [ 'c' ] } ]
0 commit comments