/ test / handler / test_shellcheck_handler.vader
test_shellcheck_handler.vader
  1  Before:
  2    runtime ale_linters/shell/shellcheck.vim
  3  
  4  After:
  5    call ale#linter#Reset()
  6  
  7  Execute(The shellcheck handler should handle basic errors or warnings <0.7.0):
  8    AssertEqual
  9    \ [
 10    \   {
 11    \     'lnum': 2,
 12    \     'col': 1,
 13    \     'type': 'W',
 14    \     'text': 'In POSIX sh, ''let'' is not supported.',
 15    \     'code': 'SC2039',
 16    \     'detail': 'In POSIX sh, ''let'' is not supported.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC2039',
 17    \   },
 18    \   {
 19    \     'lnum': 2,
 20    \     'col': 3,
 21    \     'type': 'E',
 22    \     'text': 'Don''t put spaces around the = in assignments.',
 23    \     'code': 'SC1068',
 24    \     'detail': 'Don''t put spaces around the = in assignments.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC1068',
 25    \   },
 26    \ ],
 27    \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 6, 0], [
 28    \   '-:2:1: warning: In POSIX sh, ''let'' is not supported. [SC2039]',
 29    \   '-:2:3: error: Don''t put spaces around the = in assignments. [SC1068]',
 30    \ ])
 31  
 32  Execute(The shellcheck handler should handle notes <0.7.0):
 33    AssertEqual
 34    \ [
 35    \   {
 36    \     'lnum': 3,
 37    \     'col': 3,
 38    \     'type': 'I',
 39    \     'text': 'Double quote to prevent globbing and word splitting.',
 40    \     'code': 'SC2086',
 41    \     'detail': 'Double quote to prevent globbing and word splitting.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC2086',
 42    \   },
 43    \ ],
 44    \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 6, 0], [
 45    \   '-:3:3: note: Double quote to prevent globbing and word splitting. [SC2086]',
 46    \ ])
 47  
 48  Execute(The shellcheck handler should handle basic errors or warnings >=0.7.0):
 49    AssertEqual
 50    \ [
 51    \   {
 52    \     'lnum': 2,
 53    \     'end_lnum': 3,
 54    \     'col': 1,
 55    \     'end_col': 1,
 56    \     'type': 'W',
 57    \     'text': 'In POSIX sh, ''let'' is not supported.',
 58    \     'code': 'SC2039',
 59    \     'detail': 'In POSIX sh, ''let'' is not supported.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC2039',
 60    \   },
 61    \   {
 62    \     'lnum': 2,
 63    \     'end_lnum': 3,
 64    \     'col': 3,
 65    \     'end_col': 3,
 66    \     'type': 'E',
 67    \     'text': 'Don''t put spaces around the = in assignments.',
 68    \     'code': 'SC1068',
 69    \     'detail': 'Don''t put spaces around the = in assignments.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC1068',
 70    \   },
 71    \ ],
 72    \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 7, 0], [
 73    \   '{
 74    \     "comments": [
 75    \       {
 76    \         "file":"-",
 77    \         "line":2,
 78    \         "endLine":3,
 79    \         "column":1,
 80    \         "endColumn":2,
 81    \         "level":"warning",
 82    \         "code":2039,
 83    \         "message":"In POSIX sh, ''let'' is not supported.",
 84    \         "fix": null
 85    \       },
 86    \       {
 87    \         "file":"-",
 88    \         "line":2,
 89    \         "endLine":3,
 90    \         "column":3,
 91    \         "endColumn":4,
 92    \         "level":"error",
 93    \         "code":1068,
 94    \         "message":"Don''t put spaces around the = in assignments.",
 95    \         "fix": null
 96    \       }
 97    \     ]
 98    \   }'
 99    \ ])
100  
101  Execute(The shellcheck handler should handle info and style >=0.7.0):
102    AssertEqual
103    \ [
104    \   {
105    \     'lnum': 3,
106    \     'end_lnum': 5,
107    \     'col': 3,
108    \     'end_col': 4,
109    \     'type': 'I',
110    \     'text': 'Double quote to prevent globbing and word splitting.',
111    \     'code': 'SC2086',
112    \     'detail': 'Double quote to prevent globbing and word splitting.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC2086',
113    \   },
114    \   {
115    \     'lnum': 13,
116    \     'end_lnum': 13,
117    \     'col': 17,
118    \     'end_col': 27,
119    \     'type': 'I',
120    \     'text': '$/${} is unnecessary on arithmetic variables.',
121    \     'code': 'SC2004',
122    \     'detail': '$/${} is unnecessary on arithmetic variables.' . "\n\nFor more information:\n  https://www.shellcheck.net/wiki/" . 'SC2004',
123    \   }
124    \ ],
125    \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 7, 0], [
126    \   '{
127    \     "comments": [
128    \       {
129    \         "file": "-",
130    \         "line": 3,
131    \         "endLine": 5,
132    \         "column": 3,
133    \         "endColumn": 5,
134    \         "level": "info",
135    \         "code": 2086,
136    \         "message": "Double quote to prevent globbing and word splitting.",
137    \         "fix": null
138    \       },
139    \       {
140    \         "file": "-",
141    \         "line": 13,
142    \         "endLine": 13,
143    \         "column": 17,
144    \         "endColumn": 28,
145    \         "level": "style",
146    \         "code": 2004,
147    \         "message": "$/${} is unnecessary on arithmetic variables.",
148    \         "fix": null
149    \       }
150    \     ]
151    \   }'
152    \ ])