aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2022-03-07 19:47:45 +0100
committerEelco Dolstra <edolstra@gmail.com>2022-03-07 19:47:45 +0100
commit30ddd37873a7ce0e6a8c884e03c6ebc52ea816a6 (patch)
tree28bd8f3fe7ef3d17d5cb38a9c0c64ac1b81891d0 /tests
parent60a68a4fee05f0dd510afcd393463e847e3c4488 (diff)
parentdcf4f77fac8bc214afd4851b367ce386f0a34658 (diff)
Merge branch 'cli-suggestions' of https://github.com/thufschmitt/nix
Diffstat (limited to 'tests')
-rw-r--r--tests/local.mk5
-rw-r--r--tests/suggestions.sh36
2 files changed, 39 insertions, 2 deletions
diff --git a/tests/local.mk b/tests/local.mk
index c3a6aa1fc..8032fc38a 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -92,8 +92,9 @@ nix_tests = \
bash-profile.sh \
pass-as-file.sh \
describe-stores.sh \
- store-ping.sh \
- nix-profile.sh
+ nix-profile.sh \
+ suggestions.sh \
+ store-ping.sh
ifeq ($(HAVE_LIBCPUID), 1)
nix_tests += compute-levels.sh
diff --git a/tests/suggestions.sh b/tests/suggestions.sh
new file mode 100644
index 000000000..16a5a7004
--- /dev/null
+++ b/tests/suggestions.sh
@@ -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"