diff options
author | w0rp <devw0rp@gmail.com> | 2017-11-05 18:37:44 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-11-05 18:37:44 +0000 |
commit | 7b5108d934d8682490ab3d9af25361e06a3df3f8 (patch) | |
tree | 3d377cb8a06600c2970bd4c34a11b3b68e92a49c /test | |
parent | caed406e16b1c6c4212553b0feec992ca289daac (diff) | |
download | ale-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.toml | 0 | ||||
-rw-r--r-- | test/command_callback/test_cargo_command_callbacks.vader | 115 |
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('')) |