Add some end-to-end tests for the suggestions
This commit is contained in:
parent
98e361ad4c
commit
91635206c0
2 changed files with 39 additions and 2 deletions
|
@ -92,8 +92,9 @@ nix_tests = \
|
||||||
bash-profile.sh \
|
bash-profile.sh \
|
||||||
pass-as-file.sh \
|
pass-as-file.sh \
|
||||||
describe-stores.sh \
|
describe-stores.sh \
|
||||||
store-ping.sh \
|
nix-profile.sh \
|
||||||
nix-profile.sh
|
suggestions.sh \
|
||||||
|
store-ping.sh
|
||||||
|
|
||||||
ifeq ($(HAVE_LIBCPUID), 1)
|
ifeq ($(HAVE_LIBCPUID), 1)
|
||||||
nix_tests += compute-levels.sh
|
nix_tests += compute-levels.sh
|
||||||
|
|
36
tests/suggestions.sh
Normal file
36
tests/suggestions.sh
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
source common.sh
|
||||||
|
|
||||||
|
clearStore
|
||||||
|
|
||||||
|
cd "$TEST_HOME"
|
||||||
|
|
||||||
|
cat <<EOF > flake.nix
|
||||||
|
{
|
||||||
|
outputs = a: {
|
||||||
|
packages.$system = {
|
||||||
|
foo = 1;
|
||||||
|
fo1 = 1;
|
||||||
|
fo2 = 1;
|
||||||
|
fooo = 1;
|
||||||
|
foooo = 1;
|
||||||
|
fooooo = 1;
|
||||||
|
fooooo1 = 1;
|
||||||
|
fooooo2 = 1;
|
||||||
|
fooooo3 = 1;
|
||||||
|
fooooo4 = 1;
|
||||||
|
fooooo5 = 1;
|
||||||
|
fooooo6 = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Probable typo in the requested attribute path. Suggest some close possibilities
|
||||||
|
NIX_BUILD_STDERR_WITH_SUGGESTIONS=$(! nix build .\#fob 2>&1 1>/dev/null)
|
||||||
|
[[ "$NIX_BUILD_STDERR_WITH_SUGGESTIONS" =~ "Did you mean one of fo1, fo2, foo or fooo?" ]] || \
|
||||||
|
fail "The nix build stderr should suggest the three closest possiblities"
|
||||||
|
|
||||||
|
# None of the possible attributes is close to `bar`, so shouldn’t suggest anything
|
||||||
|
NIX_BUILD_STDERR_WITH_NO_CLOSE_SUGGESTION=$(! nix build .\#bar 2>&1 1>/dev/null)
|
||||||
|
[[ ! "$NIX_BUILD_STDERR_WITH_NO_CLOSE_SUGGESTION" =~ "Did you mean" ]] || \
|
||||||
|
fail "The nix build stderr shouldn’t suggest anything if there’s nothing relevant to suggest"
|
Loading…
Reference in a new issue