This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
ale/test/handler/test_ameba_handler.vader
Harrison Bachrach 17a2f554e3 Add initial ameba (crystal linter) support (#2174)
* Add initial ameba (crystal linter) support

Note that this depends on saved file as `ameba` does not have STDIN
support

* Fix formatting of crystal linter documentation
* Add tests for ameba executable customization
2019-01-27 16:01:42 +00:00

44 lines
1.7 KiB
Text

Before:
runtime ale_linters/crystal/ameba.vim
After:
unlet! g:lines
call ale#linter#Reset()
Execute(The ameba handler should parse lines correctly):
AssertEqual
\ [
\ {
\ 'lnum': 24,
\ 'col': 28,
\ 'end_col': 29,
\ 'text': 'Trailing whitespace detected',
\ 'code': 'Layout/TrailingWhitespace',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#crystal#ameba#HandleAmebaOutput(123, [
\ '{"sources":[{"path":"my_file_with_issues.cr","issues":[{"rule_name":"Layout/TrailingWhitespace","message":"Trailing whitespace detected","location":{"line":24,"column":28},"end_location":{"line":null,"column":null}}]},{"path":"my_file_without_issues.cr","issues":[]}],"metadata":{"ameba_version":"0.8.1","crystal_version":"0.26.1"},"summary":{"target_sources_count":2,"issues_count":1}}'
\ ])
Execute(The ameba handler should handle when files are checked and no offenses are found):
AssertEqual
\ [],
\ ale_linters#crystal#ameba#HandleAmebaOutput(123, [
\ '{"sources":[{"path":"my_file_with_issues.cr",issues":[]},{"path":"my_file_without_issues.cr",issues":[]}],"metadata":{ameba_version":"0.8.1",crystal_version":"0.26.1"},"summary":{target_sources_count":2,issues_count":0}}'
\ ])
Execute(The ameba handler should handle when no files are checked):
AssertEqual
\ [],
\ ale_linters#crystal#ameba#HandleAmebaOutput(123, [
\ '{"sources":[],"metadata":{ameba_version":"0.8.1",crystal_version":"0.26.1"},"summary":{target_sources_count":0,issues_count":0}}'
\ ])
Execute(The ameba handler should handle blank output without any errors):
AssertEqual
\ [],
\ ale_linters#crystal#ameba#HandleAmebaOutput(123, ['{}'])
AssertEqual
\ [],
\ ale_linters#crystal#ameba#HandleAmebaOutput(123, [])