toolbox/test/system/108-completion.bats
Nieves Montero 0a1417799a test/system: Fix warnings by specifying the minimum needed Bats version
Bats 1.7.0 emits a warning if a feature that is only available starting
from a certain version of Bats onwards is used without specifying that
version [1]:
  BW02: Using flags on `run` requires at least BATS_VERSION=1.5.0. Use
    `bats_require_minimum_version 1.5.0` to fix this message.
        (from function `bats_warn_minimum_guaranteed_version' in file
           /usr/lib/bats-core/warnings.bash, line 32,
         from function `run' in file
           /usr/lib/bats-core/test_functions.bash, line 227,
         in test file test/system/001-version.bats, line 27)

Note that bats_require_minimum_version itself is only available from
Bats 1.7.0 [2].  Hence, even though the specific feature here (using
flags on 'run') only requires Bats >= 1.5.0, in practice Bats >= 1.7.0
is needed.  Fortunately, commit e22a82fec8 already added a
dependency on Bats >= 1.7.0.  So, there's nothing to worry about.

[1] Bats commit 82002bb6c1a5c418
    https://github.com/bats-core/bats-core/issues/556
    https://bats-core.readthedocs.io/en/stable/warnings/BW02.html

[2] Bats commit 71d6b71cebc3d32b
    https://github.com/bats-core/bats-core/issues/556
    https://bats-core.readthedocs.io/en/stable/warnings/BW02.html

https://github.com/containers/toolbox/pull/1315
2023-06-13 12:48:11 +02:00

93 lines
2.6 KiB
Bash

#!/usr/bin/env bats
#
# Copyright © 2023 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
load 'libs/bats-support/load'
load 'libs/bats-assert/load'
load 'libs/helpers'
setup() {
bats_require_minimum_version 1.7.0
_setup_environment
}
@test "completion: Smoke test with 'bash'" {
run $TOOLBOX completion bash
assert_success
assert [ ${#lines[@]} -gt 0 ]
assert [ ${#stderr_lines[@]} -eq 0 ]
}
@test "completion: Smoke test with 'fish'" {
run $TOOLBOX completion fish
assert_success
assert [ ${#lines[@]} -gt 0 ]
assert [ ${#stderr_lines[@]} -eq 0 ]
}
@test "completion: Smoke test with 'zsh'" {
run $TOOLBOX completion zsh
assert_success
assert [ ${#lines[@]} -gt 0 ]
assert [ ${#stderr_lines[@]} -eq 0 ]
}
@test "completion: Try without any arguments" {
run --separate-stderr $TOOLBOX completion
assert_failure
assert [ ${#lines[@]} -eq 0 ]
lines=("${stderr_lines[@]}")
assert_line --index 0 "Error: accepts 1 arg(s), received 0"
assert_line --index 1 "Run 'toolbox --help' for usage."
assert [ ${#stderr_lines[@]} -eq 2 ]
}
@test "completion: Try with invalid arguments" {
run --separate-stderr $TOOLBOX completion foo
assert_failure
assert [ ${#lines[@]} -eq 0 ]
lines=("${stderr_lines[@]}")
assert_line --index 0 "Error: invalid argument \"foo\" for \"toolbox completion\""
assert_line --index 1 "Run 'toolbox --help' for usage."
assert [ ${#stderr_lines[@]} -eq 2 ]
}
@test "completion: Try with unknown flag" {
run --separate-stderr $TOOLBOX completion --foo
assert_failure
assert [ ${#lines[@]} -eq 0 ]
lines=("${stderr_lines[@]}")
assert_line --index 0 "Error: unknown flag: --foo"
assert_line --index 1 "Run 'toolbox --help' for usage."
assert [ ${#stderr_lines[@]} -eq 2 ]
}
@test "completion: Try with unsupported shell" {
run --separate-stderr $TOOLBOX completion powershell
assert_failure
assert [ ${#lines[@]} -eq 0 ]
lines=("${stderr_lines[@]}")
assert_line --index 0 "Error: invalid argument \"powershell\" for \"toolbox completion\""
assert_line --index 1 "Run 'toolbox --help' for usage."
assert [ ${#stderr_lines[@]} -eq 2 ]
}