diff options
author | w0rp <devw0rp@gmail.com> | 2017-06-06 20:08:19 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-06-06 20:08:19 +0100 |
commit | 7db805b0cd1367ebf866e0c149fd819e425f6e0d (patch) | |
tree | 9d2569819a21c2e8b0d82218120821eb2a67cccb /test | |
parent | ef86a8a389842b4de5196bd458e2014bc63da238 (diff) | |
download | ale-7db805b0cd1367ebf866e0c149fd819e425f6e0d.zip |
#482 - Fix Flow handling with relative paths
Diffstat (limited to 'test')
-rw-r--r-- | test/handler/test_flow_handler.vader | 108 | ||||
-rw-r--r-- | test/test_path_equality.vader | 29 |
2 files changed, 118 insertions, 19 deletions
diff --git a/test/handler/test_flow_handler.vader b/test/handler/test_flow_handler.vader index 597366f3..46b52229 100644 --- a/test/handler/test_flow_handler.vader +++ b/test/handler/test_flow_handler.vader @@ -8,7 +8,7 @@ After: call ale#linter#Reset() Execute(The flow handler should process errors correctly.): - e! /home/w0rp/Downloads/graphql-js/src/language/parser.js + silent! noautocmd file /home/w0rp/Downloads/graphql-js/src/language/parser.js let g:flow_output = { \ "flowVersion": "0.39.0", @@ -130,7 +130,7 @@ Execute(The flow handler should process errors correctly.): AssertEqual g:expected, g:actual Execute(The flow handler should fetch the correct location for the currently opened file, even when it's not in the first message.): - e! /Users/rav/Projects/vim-ale-flow/index.js + silent! noautocmd file /Users/rav/Projects/vim-ale-flow/index.js let g:flow_output = { \ "flowVersion": "0.44.0", @@ -232,3 +232,107 @@ Execute(The flow handler should fetch the correct location for the currently ope \] AssertEqual g:expected, g:actual + +Execute(The flow handler should handle relative paths): + silent! noautocmd file /Users/rav/Projects/vim-ale-flow/index.js + + let g:flow_output = { + \ "flowVersion": "0.44.0", + \ "errors": [{ + \ "operation": { + \ "context": " <Foo foo=\"bar\"/>, document.getElementById('foo')", + \ "descr": "React element `Foo`", + \ "type": "Blame", + \ "loc": { + \ "source": "vim-ale-flow/index.js", + \ "type": "SourceFile", + \ "start": { + \ "line": 6, + \ "column": 3, + \ "offset": 92 + \ }, + \ "end": { + \ "line": 6, + \ "column": 18, + \ "offset": 108 + \ } + \ }, + \ "path": "vim-ale-flow/index.js", + \ "line": 6, + \ "endline": 6, + \ "start": 3, + \ "end": 18 + \ }, + \ "kind": "infer", + \ "level": "error", + \ "message": [{ + \ "context": "module.exports = function(props: Props) {", + \ "descr": "property `bar`", + \ "type": "Blame", + \ "loc": { + \ "source": "vim-ale-flow/foo.js", + \ "type": "SourceFile", + \ "start": { + \ "line": 9, + \ "column": 34, + \ "offset": 121 + \ }, + \ "end": { + \ "line": 9, + \ "column": 38, + \ "offset": 126 + \ } + \ }, + \ "path": "vim-ale-flow/foo.js", + \ "line": 9, + \ "endline": 9, + \ "start": 34, + \ "end": 38 + \ }, { + \ "context": v:null, + \ "descr": "Property not found in", + \ "type": "Comment", + \ "path": "", + \ "line": 0, + \ "endline": 0, + \ "start": 1, + \ "end": 0 + \ }, { + \ "context": " <Foo foo=\"bar\"/>, document.getElementById('foo')", + \ "descr": "props of React element `Foo`", + \ "type": "Blame", + \ "loc": { + \ "source": "vim-ale-flow/index.js", + \ "type": "SourceFile", + \ "start": { + \ "line": 6, + \ "column": 3, + \ "offset": 92 + \ }, + \ "end": { + \ "line": 6, + \ "column": 18, + \ "offset": 108 + \ } + \ }, + \ "path": "vim-ale-flow/index.js", + \ "line": 6, + \ "endline": 6, + \ "start": 3, + \ "end": 18 + \ }] + \ }], + \ "passed": v:false + \} + + let g:actual = ale_linters#javascript#flow#Handle(bufnr(''), [json_encode(g:flow_output)]) + let g:expected = [ + \ { + \ 'lnum': 6, + \ 'col': 3, + \ 'type': 'E', + \ 'text': 'property `bar`: Property not found in props of React element `Foo` See also: React element `Foo`' + \ } + \] + + AssertEqual g:expected, g:actual diff --git a/test/test_path_equality.vader b/test/test_path_equality.vader index b1f06967..5d92794f 100644 --- a/test/test_path_equality.vader +++ b/test/test_path_equality.vader @@ -1,18 +1,3 @@ -Execute(ale#path#GetAbsPath should handle simple relative paths): - AssertEqual '/foo/bar', ale#path#GetAbsPath('/foo', 'bar') - AssertEqual 'C:\foo/bar', ale#path#GetAbsPath('C:\foo', 'bar') - AssertEqual getcwd() . '/foo/bar', ale#path#GetAbsPath('foo', 'bar') - -Execute(ale#path#GetAbsPath should handle relative paths with dots): - AssertEqual '/foo/baz', ale#path#GetAbsPath('/foo', 'bar/sub/../../baz') - AssertEqual '/foo/baz', ale#path#GetAbsPath('/foo/', 'bar/sub/../../baz') - AssertEqual '/foo/other', ale#path#GetAbsPath('/foo/bar', '../other') - AssertEqual '/foo/other', ale#path#GetAbsPath('/foo/bar/', '../other') - -Execute(ale#path#GetAbsPath should handle absolute paths): - AssertEqual '/foo/bar', ale#path#GetAbsPath('/something else', '/foo/bar') - AssertEqual 'C:\foo/bar', ale#path#GetAbsPath('D:\another thing', 'C:\foo/bar') - Execute(ale#path#IsBufferPath should match simple relative paths): silent file! foo.txt @@ -25,7 +10,17 @@ Execute(ale#path#IsBufferPath should match absolute paths): Assert ale#path#IsBufferPath(bufnr(''), getcwd() . '/foo.txt'), 'No match for foo.txt' Assert !ale#path#IsBufferPath(bufnr(''), getcwd() . '/bar.txt'), 'Bad match for bar.txt' -Execute(ale#path#IsBufferPath should match paths with dots): +Execute(ale#path#IsBufferPath should match paths beginning with ./): + silent file! foo.txt + + Assert ale#path#IsBufferPath(bufnr(''), './foo.txt'), 'No match for ./foo.txt' + +Execute(ale#path#IsBufferPath should match if our path ends with the test path): + silent file! foo/bar/baz.txt + + Assert ale#path#IsBufferPath(bufnr(''), 'bar/baz.txt'), 'No match for bar/baz.txt' + +Execute(ale#path#IsBufferPath should match paths with redundant slashes): silent file! foo.txt - Assert ale#path#IsBufferPath(bufnr(''), './test/../foo.txt'), 'No match for ./test/../foo.txt' + Assert ale#path#IsBufferPath(bufnr(''), getcwd() . '////foo.txt'), 'No match for foo.txt' |