summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-11-05 18:37:44 +0000
committerw0rp <devw0rp@gmail.com>2017-11-05 18:37:44 +0000
commit7b5108d934d8682490ab3d9af25361e06a3df3f8 (patch)
tree3d377cb8a06600c2970bd4c34a11b3b68e92a49c /test
parentcaed406e16b1c6c4212553b0feec992ca289daac (diff)
downloadale-7b5108d934d8682490ab3d9af25361e06a3df3f8.zip
Fix #626 - Automatically use `cargo check` and `cargo check --all-targets` for cargo versions that are new enough
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/cargo_paths/Cargo.toml0
-rw-r--r--test/command_callback/test_cargo_command_callbacks.vader115
2 files changed, 115 insertions, 0 deletions
diff --git a/test/command_callback/cargo_paths/Cargo.toml b/test/command_callback/cargo_paths/Cargo.toml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/command_callback/cargo_paths/Cargo.toml
diff --git a/test/command_callback/test_cargo_command_callbacks.vader b/test/command_callback/test_cargo_command_callbacks.vader
new file mode 100644
index 00000000..d808e197
--- /dev/null
+++ b/test/command_callback/test_cargo_command_callbacks.vader
@@ -0,0 +1,115 @@
+Before:
+ Save g:ale_rust_cargo_use_check
+ Save g:ale_rust_cargo_check_all_targets
+
+ unlet! g:ale_rust_cargo_use_check
+ unlet! g:ale_cargo_check_all_targets
+
+ runtime ale_linters/rust/cargo.vim
+ call ale#test#SetDirectory('/testplugin/test/command_callback')
+
+ let g:suffix = ' --frozen --message-format=json -q'
+
+After:
+ Restore
+
+ unlet! g:suffix
+
+ call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
+
+Execute(An empty string should be returned for the cargo executable when there's no Cargo.toml file):
+ AssertEqual
+ \ '',
+ \ ale_linters#rust#cargo#GetCargoExecutable(bufnr(''))
+
+Execute(The executable should be returned when there is a Cargo.toml file):
+ call ale#test#SetFilename('cargo_paths/test.rs')
+
+ AssertEqual
+ \ 'cargo',
+ \ ale_linters#rust#cargo#GetCargoExecutable(bufnr(''))
+
+Execute(The VersionCheck function should return the --version command):
+ AssertEqual
+ \ 'cargo --version',
+ \ ale_linters#rust#cargo#VersionCheck(bufnr(''))
+
+Execute(The default command should be correct):
+ AssertEqual
+ \ 'cargo build' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
+
+Execute(`cargo check` should be used when the version is new enough):
+ AssertEqual
+ \ 'cargo check' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.17.0 (3423351a5 2017-10-06)',
+ \ ])
+
+ " We should cache the version check
+ AssertEqual
+ \ 'cargo check' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
+
+ AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
+
+Execute(`cargo build` should be used when cargo is too old):
+ AssertEqual
+ \ 'cargo build' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.16.0 (3423351a5 2017-10-06)',
+ \ ])
+
+ " We should cache the version check
+ AssertEqual
+ \ 'cargo build' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
+
+ AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
+
+Execute(`cargo build` should be used when g:ale_rust_cargo_use_check is set to 0):
+ let g:ale_rust_cargo_use_check = 0
+
+ AssertEqual
+ \ 'cargo build' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.24.0 (3423351a5 2017-10-06)',
+ \ ])
+
+ " We should cache the version check
+ AssertEqual
+ \ 'cargo build' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
+
+ AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
+
+Execute(`cargo check --all-targets` should be used when the version is new enough):
+ AssertEqual
+ \ 'cargo check --all-targets' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.22.0 (3423351a5 2017-10-06)',
+ \ ])
+
+ " We should cache the version check
+ AssertEqual
+ \ 'cargo check --all-targets' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
+
+ AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
+
+Execute(--all-targets should not be used when g:ale_rust_cargo_check_all_targets is set to 0):
+ let g:ale_rust_cargo_check_all_targets = 0
+
+ AssertEqual
+ \ 'cargo check' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
+ \ 'cargo 0.22.0 (3423351a5 2017-10-06)',
+ \ ])
+
+ " We should cache the version check
+ AssertEqual
+ \ 'cargo check' . g:suffix,
+ \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
+
+ AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))