@@ -60,31 +60,39 @@ describe('merge.js', () => {
6060
6161 describe ( 'merge' , ( ) => {
6262 it ( 'should handle a schema lookup or schema for first argument' , ( ) => {
63- merge ( stdForm . lookup , [ 'name' , 'shoe' , 'gender' ] ) . should . be . deep . equal ( stdForm . form ) ;
64- merge ( schema , [ '*' ] ) . should . be . deep . equal ( stdForm . form ) ;
63+ merge ( stdForm . lookup , [ 'name' , 'shoe' , 'gender' ] ) . should . be . deep . equal ( stdForm . form ) ;
64+ merge ( schema , [ '*' ] ) . should . be . deep . equal ( stdForm . form ) ;
6565 } ) ;
6666
6767 it ( 'should handle a wildcard * in the form definition' , ( ) => {
68- merge ( schema , [ '*' ] ) . should . be . deep . equal ( stdForm . form ) ;
68+ merge ( schema , [ '*' ] ) . should . be . deep . equal ( stdForm . form ) ;
6969 } ) ;
7070
71- it ( 'should not handle a wildcard * if the schema is a lookup' , ( ) => {
72- merge ( stdForm . lookup , [ '*' ] ) . should . not . be . deep . equal ( stdForm . form ) ;
71+ it ( 'should not handle a wildcard * if the schema is a lookup and cannot be inserted' , ( ) => {
72+ merge ( stdForm . lookup , [ '*' ] ) . should . not . be . deep . equal ( stdForm . form ) ;
73+ } ) ;
74+
75+ it ( 'should handle a rest "..." key in the form definition' , ( ) => {
76+ merge ( schema , [ '...' , 'gender' ] ) . should . be . deep . equal ( stdForm . form ) ;
77+ } ) ;
78+
79+ it ( 'should not handle a rest "..." key in the form definition when the schema is a lookup and cannot be inserted' , ( ) => {
80+ merge ( stdForm . lookup , [ '...' , 'gender' ] ) . should . not . be . deep . equal ( stdForm . form ) ;
7381 } ) ;
7482
7583 it ( 'should combine a schema and form definition, regardless of order' , ( ) => {
76- merge ( schema , [ 'name' , 'shoe' , 'gender' ] ) . should . be . deep . equal ( stdForm . form ) ;
77- merge ( schema , [ 'gender' ] ) . should . be . deep . equal ( [ stdForm . form [ 2 ] ] ) ;
78- merge ( schema , [ 'gender' , 'name' ] ) . should . be . deep . equal ( [ stdForm . form [ 2 ] , stdForm . form [ 0 ] ] ) ;
84+ merge ( schema , [ 'name' , 'shoe' , 'gender' ] ) . should . be . deep . equal ( stdForm . form ) ;
85+ merge ( schema , [ 'gender' ] ) . should . be . deep . equal ( [ stdForm . form [ 2 ] ] ) ;
86+ merge ( schema , [ 'gender' , 'name' ] ) . should . be . deep . equal ( [ stdForm . form [ 2 ] , stdForm . form [ 0 ] ] ) ;
7987 } ) ;
8088
8189
8290 it ( 'should allow items that are not in the schema' , ( ) => {
83- merge ( schema , [ '*' , { type :'fieldset' } ] ) . should . be . deep . equal ( stdForm . form . concat ( [ { type :'fieldset' } ] ) ) ;
91+ merge ( schema , [ '*' , { type :'fieldset' } ] ) . should . be . deep . equal ( stdForm . form . concat ( [ { type :'fieldset' } ] ) ) ;
8492 } ) ;
8593
8694 it ( 'should translate "readOnly" in schema to "readonly" on the merged form defintion' , ( ) => {
87- var merged = merge ( schema , [ 'gender' ] ) ;
95+ var merged = merge ( schema , [ 'gender' ] ) ;
8896 merged [ 0 ] . should . have . property ( 'readonly' ) ;
8997 merged [ 0 ] . readonly . should . eq ( true )
9098 } ) ;
@@ -113,7 +121,7 @@ describe('merge.js', () => {
113121 }
114122 } ;
115123
116- var merged = merge ( subschema , [ '*' ] ) ;
124+ var merged = merge ( subschema , [ '*' ] ) ;
117125
118126 //sub
119127 merged [ 0 ] . should . have . property ( 'readonly' ) ;
0 commit comments