Test global problems and imported module errors
This commit is contained in:
		
							parent
							
								
									d40f447931
								
							
						
					
					
						commit
						2f40da76e6
					
				@ -1,11 +1,11 @@
 | 
				
			|||||||
" Author: buffalocoder - https://github.com/buffalocoder, soywod - https://github.com/soywod
 | 
					" Author: buffalocoder - https://github.com/buffalocoder, soywod - https://github.com/soywod
 | 
				
			||||||
" Description: Elm linting in Ale. Closely follows the Syntastic checker in https://github.com/ElmCast/elm-vim.
 | 
					" Description: Elm linting in Ale. Closely follows the Syntastic checker in https://github.com/ElmCast/elm-vim.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
call ale#Set('elm_executable', 'elm')
 | 
					call ale#Set('elm_make_executable', 'elm')
 | 
				
			||||||
call ale#Set('elm_use_global', get(g:, 'ale_use_global_executables', 0))
 | 
					call ale#Set('elm_make_use_global', get(g:, 'ale_use_global_executables', 0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! ale_linters#elm#make#GetExecutable(buffer) abort
 | 
					function! ale_linters#elm#make#GetExecutable(buffer) abort
 | 
				
			||||||
    return ale#node#FindExecutable(a:buffer, 'elm', [
 | 
					    return ale#node#FindExecutable(a:buffer, 'elm_make', [
 | 
				
			||||||
    \   'node_modules/.bin/elm',
 | 
					    \   'node_modules/.bin/elm',
 | 
				
			||||||
    \])
 | 
					    \])
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,26 @@ After:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  call ale#linter#Reset()
 | 
					  call ale#linter#Reset()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Execute(The elm-make handler should parse lines correctly):
 | 
					Execute(The elm make handler should parse general problems correctly):
 | 
				
			||||||
 | 
					  AssertEqual
 | 
				
			||||||
 | 
					  \ [
 | 
				
			||||||
 | 
					  \   {
 | 
				
			||||||
 | 
					  \     'lnum': 1,
 | 
				
			||||||
 | 
					  \     'type': 'E',
 | 
				
			||||||
 | 
					  \     'text': 'UNKNOWN IMPORT',
 | 
				
			||||||
 | 
					  \     'detail': "error details 1\n\nstyled details"
 | 
				
			||||||
 | 
					  \   }
 | 
				
			||||||
 | 
					  \ ],
 | 
				
			||||||
 | 
					  \ ale_linters#elm#make#Handle(347, [
 | 
				
			||||||
 | 
					  \   '{
 | 
				
			||||||
 | 
					  \      "type": "error",
 | 
				
			||||||
 | 
					  \      "path": "' . b:tmp . '/Module.elm",
 | 
				
			||||||
 | 
					  \      "title": "UNKNOWN IMPORT",
 | 
				
			||||||
 | 
					  \      "message": ["error details 1\n\n", { "string": "styled details" }]
 | 
				
			||||||
 | 
					  \    }'
 | 
				
			||||||
 | 
					  \ ])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Execute(The elm make handler should parse compilation errors correctly):
 | 
				
			||||||
  AssertEqual
 | 
					  AssertEqual
 | 
				
			||||||
  \ [
 | 
					  \ [
 | 
				
			||||||
  \   {
 | 
					  \   {
 | 
				
			||||||
@ -19,7 +38,7 @@ Execute(The elm-make handler should parse lines correctly):
 | 
				
			|||||||
  \     'end_col': 18,
 | 
					  \     'end_col': 18,
 | 
				
			||||||
  \     'type': 'E',
 | 
					  \     'type': 'E',
 | 
				
			||||||
  \     'text': 'TYPE MISMATCH',
 | 
					  \     'text': 'TYPE MISMATCH',
 | 
				
			||||||
  \     'detail': "error details 1 styled details"
 | 
					  \     'detail': "error details 1\n\nstyled details"
 | 
				
			||||||
  \   },
 | 
					  \   },
 | 
				
			||||||
  \   {
 | 
					  \   {
 | 
				
			||||||
  \     'lnum': 406,
 | 
					  \     'lnum': 406,
 | 
				
			||||||
@ -45,11 +64,11 @@ Execute(The elm-make handler should parse lines correctly):
 | 
				
			|||||||
  \      "type": "compile-errors",
 | 
					  \      "type": "compile-errors",
 | 
				
			||||||
  \      "errors": [
 | 
					  \      "errors": [
 | 
				
			||||||
  \        {
 | 
					  \        {
 | 
				
			||||||
  \          "path": "' . b:tmp . 'Module.elm",
 | 
					  \          "path": "' . b:tmp . '/Module.elm",
 | 
				
			||||||
  \          "problems": [
 | 
					  \          "problems": [
 | 
				
			||||||
  \            {
 | 
					  \            {
 | 
				
			||||||
  \              "title": "TYPE MISMATCH",
 | 
					  \              "title": "TYPE MISMATCH",
 | 
				
			||||||
  \              "message": ["error details 1 ", { "string": "styled details" }],
 | 
					  \              "message": ["error details 1\n\n", { "string": "styled details" }],
 | 
				
			||||||
  \              "region": { "start": { "line": 404, "column": 1 }, "end": { "line": 408, "column": 18 } }
 | 
					  \              "region": { "start": { "line": 404, "column": 1 }, "end": { "line": 408, "column": 18 } }
 | 
				
			||||||
  \            },
 | 
					  \            },
 | 
				
			||||||
  \            {
 | 
					  \            {
 | 
				
			||||||
@ -68,7 +87,35 @@ Execute(The elm-make handler should parse lines correctly):
 | 
				
			|||||||
  \    }'
 | 
					  \    }'
 | 
				
			||||||
  \ ])
 | 
					  \ ])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Execute(The elm-make handler should put an error on the first line if a line cannot be parsed):
 | 
					Execute(The elm make handler should put an error on the first line for compilation errors in imported modules):
 | 
				
			||||||
 | 
					  AssertEqual
 | 
				
			||||||
 | 
					  \ [
 | 
				
			||||||
 | 
					  \   {
 | 
				
			||||||
 | 
					  \     'lnum': 1,
 | 
				
			||||||
 | 
					  \     'type': 'E',
 | 
				
			||||||
 | 
					  \     'text': 'src/Module.elm:404 - TYPE MISMATCH',
 | 
				
			||||||
 | 
					  \     'detail': "src/Module.elm:404 -------\n\nerror details\n\nstyled details"
 | 
				
			||||||
 | 
					  \   },
 | 
				
			||||||
 | 
					  \ ],
 | 
				
			||||||
 | 
					  \ ale_linters#elm#make#Handle(347, [
 | 
				
			||||||
 | 
					  \   '{
 | 
				
			||||||
 | 
					  \      "type": "compile-errors",
 | 
				
			||||||
 | 
					  \      "errors": [
 | 
				
			||||||
 | 
					  \        {
 | 
				
			||||||
 | 
					  \          "path": "src/Module.elm",
 | 
				
			||||||
 | 
					  \          "problems": [
 | 
				
			||||||
 | 
					  \            {
 | 
				
			||||||
 | 
					  \              "title": "TYPE MISMATCH",
 | 
				
			||||||
 | 
					  \              "message": ["error details\n\n", { "string": "styled details" }],
 | 
				
			||||||
 | 
					  \              "region": { "start": { "line": 404, "column": 1 }, "end": { "line": 408, "column": 18 } }
 | 
				
			||||||
 | 
					  \            }
 | 
				
			||||||
 | 
					  \          ]
 | 
				
			||||||
 | 
					  \        }
 | 
				
			||||||
 | 
					  \      ]
 | 
				
			||||||
 | 
					  \    }'
 | 
				
			||||||
 | 
					  \ ])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Execute(The elm make handler should put an error on the first line if a line cannot be parsed):
 | 
				
			||||||
  AssertEqual
 | 
					  AssertEqual
 | 
				
			||||||
  \ [
 | 
					  \ [
 | 
				
			||||||
  \   {
 | 
					  \   {
 | 
				
			||||||
@ -92,7 +139,7 @@ Execute(The elm-make handler should put an error on the first line if a line can
 | 
				
			|||||||
  \      "type": "compile-errors",
 | 
					  \      "type": "compile-errors",
 | 
				
			||||||
  \      "errors": [
 | 
					  \      "errors": [
 | 
				
			||||||
  \        {
 | 
					  \        {
 | 
				
			||||||
  \          "path": "' . b:tmp . 'Module.elm",
 | 
					  \          "path": "' . b:tmp . '/Module.elm",
 | 
				
			||||||
  \          "problems": [
 | 
					  \          "problems": [
 | 
				
			||||||
  \            {
 | 
					  \            {
 | 
				
			||||||
  \              "title": "TYPE MISMATCH",
 | 
					  \              "title": "TYPE MISMATCH",
 | 
				
			||||||
 | 
				
			|||||||
@ -3,8 +3,8 @@ Before:
 | 
				
			|||||||
  runtime ale_linters/elm/make.vim
 | 
					  runtime ale_linters/elm/make.vim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
After:
 | 
					After:
 | 
				
			||||||
  unlet! g:ale_elm_use_global
 | 
					  unlet! g:ale_elm_make_use_global
 | 
				
			||||||
  unlet! g:ale_elm_executable
 | 
					  unlet! g:ale_elm_make_executable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call ale#test#RestoreDirectory()
 | 
					  call ale#test#RestoreDirectory()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -16,7 +16,7 @@ Execute(should get valid executable with default params):
 | 
				
			|||||||
  \ ale_linters#elm#make#GetExecutable(bufnr(''))
 | 
					  \ ale_linters#elm#make#GetExecutable(bufnr(''))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Execute(should get valid executable with 'use_global' params):
 | 
					Execute(should get valid executable with 'use_global' params):
 | 
				
			||||||
  let g:ale_elm_use_global = 1
 | 
					  let g:ale_elm_make_use_global = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call ale#test#SetFilename('elm-test-files/app/testfile.elm')
 | 
					  call ale#test#SetFilename('elm-test-files/app/testfile.elm')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -25,8 +25,8 @@ Execute(should get valid executable with 'use_global' params):
 | 
				
			|||||||
  \ ale_linters#elm#make#GetExecutable(bufnr(''))
 | 
					  \ ale_linters#elm#make#GetExecutable(bufnr(''))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Execute(should get valid executable with 'use_global' and 'executable' params):
 | 
					Execute(should get valid executable with 'use_global' and 'executable' params):
 | 
				
			||||||
  let g:ale_elm_executable = 'other-elm'
 | 
					  let g:ale_elm_make_executable = 'other-elm'
 | 
				
			||||||
  let g:ale_elm_use_global = 1
 | 
					  let g:ale_elm_make_use_global = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call ale#test#SetFilename('elm-test-files/app/testfile.elm')
 | 
					  call ale#test#SetFilename('elm-test-files/app/testfile.elm')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user