summaryrefslogtreecommitdiff
path: root/test/handler/test_flow_handler.vader
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-06-06 20:08:19 +0100
committerw0rp <devw0rp@gmail.com>2017-06-06 20:08:19 +0100
commit7db805b0cd1367ebf866e0c149fd819e425f6e0d (patch)
tree9d2569819a21c2e8b0d82218120821eb2a67cccb /test/handler/test_flow_handler.vader
parentef86a8a389842b4de5196bd458e2014bc63da238 (diff)
downloadale-7db805b0cd1367ebf866e0c149fd819e425f6e0d.zip
#482 - Fix Flow handling with relative paths
Diffstat (limited to 'test/handler/test_flow_handler.vader')
-rw-r--r--test/handler/test_flow_handler.vader108
1 files changed, 106 insertions, 2 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