@@ -130,6 +130,68 @@ test('camelCase with pascalCase option', t => {
130
130
t . is ( camelCase ( '桑德_在这里。' , { pascalCase : true } ) , '桑德在这里。' ) ;
131
131
} ) ;
132
132
133
+ test ( 'camelCase with preserveConsecutiveUppercase option' , t => {
134
+ t . is ( camelCase ( 'foo-BAR' , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
135
+ t . is ( camelCase ( 'Foo-BAR' , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
136
+ t . is ( camelCase ( 'fooBAR' , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
137
+ t . is ( camelCase ( 'fooBaR' , { preserveConsecutiveUppercase : true } ) , 'fooBaR' ) ;
138
+ t . is ( camelCase ( 'FOÈ-BAR' , { preserveConsecutiveUppercase : true } ) , 'FOÈBAR' ) ;
139
+ t . is ( camelCase ( [ 'foo' , 'BAR' ] , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
140
+ t . is ( camelCase ( [ 'foo' , '-BAR' ] , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
141
+ t . is ( camelCase ( [ 'foo' , '-BAR' , 'baz' ] , { preserveConsecutiveUppercase : true } ) , 'fooBARBaz' ) ;
142
+ t . is ( camelCase ( [ '' , '' ] , { preserveConsecutiveUppercase : true } ) , '' ) ;
143
+ t . is ( camelCase ( '--' , { preserveConsecutiveUppercase : true } ) , '' ) ;
144
+ t . is ( camelCase ( '' , { preserveConsecutiveUppercase : true } ) , '' ) ;
145
+ t . is ( camelCase ( '--__--_--_' , { preserveConsecutiveUppercase : true } ) , '' ) ;
146
+ t . is ( camelCase ( [ '---_' , '--' , '' , '-_- ' ] , { preserveConsecutiveUppercase : true } ) , '' ) ;
147
+ t . is ( camelCase ( 'foo BAR?' , { preserveConsecutiveUppercase : true } ) , 'fooBAR?' ) ;
148
+ t . is ( camelCase ( 'foo BAR!' , { preserveConsecutiveUppercase : true } ) , 'fooBAR!' ) ;
149
+ t . is ( camelCase ( 'foo BAR$' , { preserveConsecutiveUppercase : true } ) , 'fooBAR$' ) ;
150
+ t . is ( camelCase ( 'foo-BAR#' , { preserveConsecutiveUppercase : true } ) , 'fooBAR#' ) ;
151
+ t . is ( camelCase ( 'XMLHttpRequest' , { preserveConsecutiveUppercase : true } ) , 'XMLHttpRequest' ) ;
152
+ t . is ( camelCase ( 'AjaxXMLHttpRequest' , { preserveConsecutiveUppercase : true } ) , 'ajaxXMLHttpRequest' ) ;
153
+ t . is ( camelCase ( 'Ajax-XMLHttpRequest' , { preserveConsecutiveUppercase : true } ) , 'ajaxXMLHttpRequest' ) ;
154
+ t . is ( camelCase ( [ ] , { preserveConsecutiveUppercase : true } ) , '' ) ;
155
+ t . is ( camelCase ( 'mGridCOl6@md' , { preserveConsecutiveUppercase : true } ) , 'mGridCOl6@md' ) ;
156
+ t . is ( camelCase ( 'A::a' , { preserveConsecutiveUppercase : true } ) , 'a::a' ) ;
157
+ t . is ( camelCase ( 'Hello1WORLD' , { preserveConsecutiveUppercase : true } ) , 'hello1WORLD' ) ;
158
+ t . is ( camelCase ( 'Hello11WORLD' , { preserveConsecutiveUppercase : true } ) , 'hello11WORLD' ) ;
159
+ t . is ( camelCase ( 'РозовыйПушистыйFOOдинорогиf' , { preserveConsecutiveUppercase : true } ) , 'розовыйПушистыйFOOдинорогиf' ) ;
160
+ t . is ( camelCase ( '桑德在这里。' , { preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
161
+ t . is ( camelCase ( '桑德_在这里。' , { preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
162
+ } ) ;
163
+
164
+ test ( 'camelCase with both pascalCase and preserveConsecutiveUppercase option' , t => {
165
+ t . is ( camelCase ( 'foo-BAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
166
+ t . is ( camelCase ( 'fooBAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
167
+ t . is ( camelCase ( 'fooBaR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBaR' ) ;
168
+ t . is ( camelCase ( 'fOÈ-BAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FOÈBAR' ) ;
169
+ t . is ( camelCase ( '--foo.BAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
170
+ t . is ( camelCase ( [ 'Foo' , 'BAR' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
171
+ t . is ( camelCase ( [ 'foo' , '-BAR' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
172
+ t . is ( camelCase ( [ 'foo' , '-BAR' , 'baz' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBARBaz' ) ;
173
+ t . is ( camelCase ( [ '' , '' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
174
+ t . is ( camelCase ( '--' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
175
+ t . is ( camelCase ( '' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
176
+ t . is ( camelCase ( '--__--_--_' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
177
+ t . is ( camelCase ( [ '---_' , '--' , '' , '-_- ' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
178
+ t . is ( camelCase ( 'foo BAR?' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR?' ) ;
179
+ t . is ( camelCase ( 'foo BAR!' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR!' ) ;
180
+ t . is ( camelCase ( 'Foo BAR$' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR$' ) ;
181
+ t . is ( camelCase ( 'foo-BAR#' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR#' ) ;
182
+ t . is ( camelCase ( 'xMLHttpRequest' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'XMLHttpRequest' ) ;
183
+ t . is ( camelCase ( 'ajaxXMLHttpRequest' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'AjaxXMLHttpRequest' ) ;
184
+ t . is ( camelCase ( 'Ajax-XMLHttpRequest' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'AjaxXMLHttpRequest' ) ;
185
+ t . is ( camelCase ( [ ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
186
+ t . is ( camelCase ( 'mGridCOl6@md' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'MGridCOl6@md' ) ;
187
+ t . is ( camelCase ( 'A::a' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'A::a' ) ;
188
+ t . is ( camelCase ( 'Hello1WORLD' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'Hello1WORLD' ) ;
189
+ t . is ( camelCase ( 'Hello11WORLD' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'Hello11WORLD' ) ;
190
+ t . is ( camelCase ( 'pозовыйПушистыйFOOдинорогиf' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'PозовыйПушистыйFOOдинорогиf' ) ;
191
+ t . is ( camelCase ( '桑德在这里。' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
192
+ t . is ( camelCase ( '桑德_在这里。' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
193
+ } ) ;
194
+
133
195
test ( 'camelCase with locale option' , t => {
134
196
t . is ( camelCase ( 'lorem-ipsum' , { locale : 'tr-TR' } ) , 'loremİpsum' ) ;
135
197
t . is ( camelCase ( 'lorem-ipsum' , { locale : 'en-EN' } ) , 'loremIpsum' ) ;
0 commit comments