--- /dev/null
+Before:
+ call ale#assert#SetUpLinterTest('ruby', 'reek')
+
+After:
+ call ale#assert#TearDownLinterTest()
+
+Execute(The reek callbacks should return the correct default values):
+ GivenCommandOutput ['reek 5.0.0']
+ AssertLinter 'reek', [
+ \ ale#Escape('reek') . ' --version',
+ \ ale#Escape('reek') . ' -f json --no-progress --no-color --force-exclusion --stdin-filename %s',
+ \]
+
+ " Try with older versions.
+ call ale#semver#ResetVersionCache()
+
+ GivenCommandOutput ['reek 4.8.2']
+ AssertLinter 'reek', [
+ \ ale#Escape('reek') . ' --version',
+ \ ale#Escape('reek') . ' -f json --no-progress --no-color --force-exclusion',
+ \]
+
+Execute(Setting bundle appends 'exec reek'):
+ let g:ale_ruby_reek_executable = 'bundle'
+
+ GivenCommandOutput ['reek 5.0.0']
+ AssertLinter 'bundle', ale#Escape('bundle')
+ \ . ' exec reek'
+ \ . ' -f json --no-progress --no-color --force-exclusion --stdin-filename %s',
+
+ " Try with older versions.
+ call ale#semver#ResetVersionCache()
+
+ GivenCommandOutput ['reek 4.8.2']
+ AssertLinter 'bundle', ale#Escape('bundle')
+ \ . ' exec reek'
+ \ . ' -f json --no-progress --no-color --force-exclusion'
+
+Execute(The reek version check should be cached):
+ GivenCommandOutput ['reek 5.0.0']
+ AssertLinter 'reek', [
+ \ ale#Escape('reek') . ' --version',
+ \ ale#Escape('reek') . ' -f json --no-progress --no-color --force-exclusion --stdin-filename %s',
+ \]
+
+ GivenCommandOutput []
+ AssertLinter 'reek', [
+ \ ale#Escape('reek') . ' -f json --no-progress --no-color --force-exclusion --stdin-filename %s',
+ \]