@@ -256,5 +256,38 @@ describe('Parser class', () => {
256256 expect ( map [ 0 ] . name ) . be . equal ( 'two' ) ;
257257 expect ( map [ 0 ] . value ) . be . equal ( 'map-get($source, one)' ) ;
258258 } ) ;
259+
260+ it ( 'should allow function calls with multiple arguments in values' , ( ) => {
261+ let content = `$funcs: (
262+ max: max(1px, 4px), // 4px
263+ min: min(1px, 4px), // 1px
264+ str-index: str-index("Helvetica Neue", "Neue"), // 11
265+ adjust-color: adjust-color(#d2e1dd, $red: -10, $blue: 10), // #c8e1e7
266+ rgba: rgba(255, 0, 0, .5), // rgba(255, 0, 0, 0.5)
267+ darken: darken(#b37399, 20%), // #7c4465
268+ );` ;
269+
270+ let parser = new Parser ( content ) ;
271+ let structured = parser . parseStructured ( ) ;
272+ let map = structured . variables [ 0 ] . mapValue ;
273+
274+ expect ( map [ 0 ] . name ) . be . equal ( 'max' ) ;
275+ expect ( map [ 0 ] . value ) . be . equal ( 'max(1px, 4px)' ) ;
276+
277+ expect ( map [ 1 ] . name ) . be . equal ( 'min' ) ;
278+ expect ( map [ 1 ] . value ) . be . equal ( 'min(1px, 4px)' ) ;
279+
280+ expect ( map [ 2 ] . name ) . be . equal ( 'str-index' ) ;
281+ expect ( map [ 2 ] . value ) . be . equal ( 'str-index("Helvetica Neue", "Neue")' ) ;
282+
283+ expect ( map [ 3 ] . name ) . be . equal ( 'adjust-color' ) ;
284+ expect ( map [ 3 ] . value ) . be . equal ( 'adjust-color(#d2e1dd, $red: -10, $blue: 10)' ) ;
285+
286+ expect ( map [ 4 ] . name ) . be . equal ( 'rgba' ) ;
287+ expect ( map [ 4 ] . value ) . be . equal ( 'rgba(255, 0, 0, .5)' ) ;
288+
289+ expect ( map [ 5 ] . name ) . be . equal ( 'darken' ) ;
290+ expect ( map [ 5 ] . value ) . be . equal ( 'darken(#b37399, 20%)' ) ;
291+ } ) ;
259292 } ) ;
260293} ) ;
0 commit comments