summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEddie Lebow <elebow@users.noreply.github.com>2017-04-20 02:37:08 -0400
committerw0rp <w0rp@users.noreply.github.com>2017-04-20 07:37:08 +0100
commit0384cabd77e38f9a04ff1c8832f6b755855e909e (patch)
tree502e93f9a0f30dc47a932ac316a4879d464272c0 /test
parentc6ef9e28a50f2378568c4c35a5346b495cb15c34 (diff)
downloadale-0384cabd77e38f9a04ff1c8832f6b755855e909e.zip
Add the Reek checker for Ruby. (#490)
Add the Reek checker for Ruby.
Diffstat (limited to 'test')
-rw-r--r--test/handler/test_reek_handler.vader69
1 files changed, 69 insertions, 0 deletions
diff --git a/test/handler/test_reek_handler.vader b/test/handler/test_reek_handler.vader
new file mode 100644
index 00000000..67ba6f60
--- /dev/null
+++ b/test/handler/test_reek_handler.vader
@@ -0,0 +1,69 @@
+Before:
+ runtime ale_linters/ruby/reek.vim
+
+After:
+ call ale#linter#Reset()
+
+Execute(The reek handler should parse JSON correctly, with only context enabled):
+ let g:ale_ruby_reek_show_context = 1
+ let g:ale_ruby_reek_show_wiki_link = 0
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 12,
+ \ 'text': 'Rule1: Context#method violates rule number one',
+ \ 'type': 'W',
+ \ },
+ \ {
+ \ 'lnum': 34,
+ \ 'text': 'Rule2: Context#method violates rule number two',
+ \ 'type': 'W',
+ \ },
+ \ {
+ \ 'lnum': 56,
+ \ 'text': 'Rule2: Context#method violates rule number two',
+ \ 'type': 'W',
+ \ },
+ \ ],
+ \ ale_linters#ruby#reek#Handle(347, [
+ \ '[{"context":"Context#method","lines":[12],"message":"violates rule number one","smell_type":"Rule1","source":"/home/user/file.rb","parameter":"bad parameter","wiki_link":"https://example.com/Rule1.md"},{"context":"Context#method","lines":[34, 56],"message":"violates rule number two","smell_type":"Rule2","source":"/home/user/file.rb","name":"bad code","count":2,"wiki_link":"https://example.com/Rule1.md"}]'
+ \ ])
+
+Execute(The reek handler should parse JSON correctly, with no context or wiki links):
+ let g:ale_ruby_reek_show_context = 0
+ let g:ale_ruby_reek_show_wiki_link = 0
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 12,
+ \ 'text': 'Rule1: violates rule number one',
+ \ 'type': 'W',
+ \ },
+ \ ],
+ \ ale_linters#ruby#reek#Handle(347, [
+ \ '[{"context":"Context#method","lines":[12],"message":"violates rule number one","smell_type":"Rule1","source":"/home/user/file.rb","parameter":"bad parameter","wiki_link":"https://example.com/Rule1.md"}]'
+ \ ])
+
+Execute(The reek handler should parse JSON correctly, with both context and wiki links):
+ let g:ale_ruby_reek_show_context = 1
+ let g:ale_ruby_reek_show_wiki_link = 1
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 12,
+ \ 'text': 'Rule1: Context#method violates rule number one [https://example.com/Rule1.md]',
+ \ 'type': 'W',
+ \ },
+ \ ],
+ \ ale_linters#ruby#reek#Handle(347, [
+ \ '[{"context":"Context#method","lines":[12],"message":"violates rule number one","smell_type":"Rule1","source":"/home/user/file.rb","parameter":"bad parameter","wiki_link":"https://example.com/Rule1.md"}]'
+ \ ])
+
+Execute(The reek handler should parse JSON correctly when there is no output from reek):
+ AssertEqual
+ \ [],
+ \ ale_linters#ruby#reek#Handle(347, [
+ \ ])