@@ -60,31 +60,39 @@ describe('merge.js', () => {
60
60
61
61
describe ( 'merge' , ( ) => {
62
62
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 ) ;
65
65
} ) ;
66
66
67
67
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 ) ;
69
69
} ) ;
70
70
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 ) ;
73
81
} ) ;
74
82
75
83
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 ] ] ) ;
79
87
} ) ;
80
88
81
89
82
90
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' } ] ) ) ;
84
92
} ) ;
85
93
86
94
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' ] ) ;
88
96
merged [ 0 ] . should . have . property ( 'readonly' ) ;
89
97
merged [ 0 ] . readonly . should . eq ( true )
90
98
} ) ;
@@ -113,7 +121,7 @@ describe('merge.js', () => {
113
121
}
114
122
} ;
115
123
116
- var merged = merge ( subschema , [ '*' ] ) ;
124
+ var merged = merge ( subschema , [ '*' ] ) ;
117
125
118
126
//sub
119
127
merged [ 0 ] . should . have . property ( 'readonly' ) ;
0 commit comments