After: unlet! g:error_lines Execute (stylelint errors should be handled correctly): " Stylelint includes trailing spaces for output. This needs to be taken into " account for parsing errors. AssertEqual \ [ \ { \ 'lnum': 108, \ 'col': 10, \ 'type': 'E', \ 'text': 'Unexpected leading zero', \ 'code': 'number-leading-zero', \ }, \ { \ 'lnum': 116, \ 'col': 20, \ 'type': 'E', \ 'text': 'Expected a trailing semicolon', \ 'code': 'declaration-block-trailing-semicolon', \ }, \ ], \ ale#handlers#css#HandleStyleLintFormat(42, [ \ 'src/main.css', \ ' 108:10 ✖ Unexpected leading zero number-leading-zero ', \ ' 116:20 ✖ Expected a trailing semicolon declaration-block-trailing-semicolon', \ ]) Execute (stylelint should complain when no configuration file is used): let g:error_lines = [ \ 'Error: No configuration provided for /home/w0rp/.vim/bundle/ale/test.stylus', \ ' at module.exports (/home/w0rp/.vim/bundle/ale/node_modules/stylelint/lib/utils/configurationError.js:8:27)', \ ' at stylelint._fullExplorer.load.then.then.config (/home/w0rp/.vim/bundle/ale/node_modules/stylelint/lib/getConfigForFile.js:39:13)', \] AssertEqual \ [{ \ 'lnum': 1, \ 'text': 'stylelint exception thrown (type :ALEDetail for more information)', \ 'detail': join(g:error_lines, "\n"), \ }], \ ale#handlers#css#HandleStyleLintFormat(347, g:error_lines[:])