diff --git a/tests/testsuite/cargo_add/feature_suggestion_multiple/in/Cargo.toml b/tests/testsuite/cargo_add/feature_suggestion_multiple/in/Cargo.toml
new file mode 100644
index 000000000..92a497412
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_multiple/in/Cargo.toml
@@ -0,0 +1,7 @@
+[workspace]
+
+[package]
+name = "cargo-list-test-fixture"
+version = "0.0.0"
+edition = "2024"
+
diff --git a/tests/testsuite/cargo_add/feature_suggestion_multiple/in/src/lib.rs b/tests/testsuite/cargo_add/feature_suggestion_multiple/in/src/lib.rs
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs b/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs
new file mode 100644
index 000000000..898f3aa81
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs
@@ -0,0 +1,24 @@
+use cargo_test_support::current_dir;
+use cargo_test_support::file;
+use cargo_test_support::prelude::*;
+use cargo_test_support::Project;
+
+#[cargo_test]
+fn case() {
+ let project = Project::from_template(current_dir!().join("in"));
+ let project_root = project.root();
+ let cwd = &project_root;
+
+ cargo_test_support::registry::Package::new("my-package", "0.1.0+my-package")
+ .feature("bar", &[])
+ .feature("foo", &[])
+ .publish();
+
+ snapbox::cmd::Command::cargo_ui()
+ .arg("add")
+ .arg_line("my-package --features baz --features feo")
+ .current_dir(cwd)
+ .assert()
+ .failure()
+ .stderr_eq(file!["stderr.term.svg"]);
+}
diff --git a/tests/testsuite/cargo_add/feature_suggestion_multiple/stderr.term.svg b/tests/testsuite/cargo_add/feature_suggestion_multiple/stderr.term.svg
new file mode 100644
index 000000000..e474c8b77
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_multiple/stderr.term.svg
@@ -0,0 +1,38 @@
+
diff --git a/tests/testsuite/cargo_add/feature_suggestion_none/in/Cargo.toml b/tests/testsuite/cargo_add/feature_suggestion_none/in/Cargo.toml
new file mode 100644
index 000000000..92a497412
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_none/in/Cargo.toml
@@ -0,0 +1,7 @@
+[workspace]
+
+[package]
+name = "cargo-list-test-fixture"
+version = "0.0.0"
+edition = "2024"
+
diff --git a/tests/testsuite/cargo_add/feature_suggestion_none/in/src/lib.rs b/tests/testsuite/cargo_add/feature_suggestion_none/in/src/lib.rs
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs b/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs
new file mode 100644
index 000000000..b157660f7
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs
@@ -0,0 +1,24 @@
+use cargo_test_support::current_dir;
+use cargo_test_support::file;
+use cargo_test_support::prelude::*;
+use cargo_test_support::Project;
+
+#[cargo_test]
+fn case() {
+ let project = Project::from_template(current_dir!().join("in"));
+ let project_root = project.root();
+ let cwd = &project_root;
+
+ cargo_test_support::registry::Package::new("my-package", "0.1.0+my-package")
+ .feature("bar", &[])
+ .feature("foo", &[])
+ .publish();
+
+ snapbox::cmd::Command::cargo_ui()
+ .arg("add")
+ .arg_line("my-package --features none_existent")
+ .current_dir(cwd)
+ .assert()
+ .failure()
+ .stderr_eq(file!["stderr.term.svg"]);
+}
diff --git a/tests/testsuite/cargo_add/feature_suggestion_none/stderr.term.svg b/tests/testsuite/cargo_add/feature_suggestion_none/stderr.term.svg
new file mode 100644
index 000000000..01bde8f40
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_none/stderr.term.svg
@@ -0,0 +1,38 @@
+
diff --git a/tests/testsuite/cargo_add/feature_suggestion_single/in/Cargo.toml b/tests/testsuite/cargo_add/feature_suggestion_single/in/Cargo.toml
new file mode 100644
index 000000000..92a497412
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_single/in/Cargo.toml
@@ -0,0 +1,7 @@
+[workspace]
+
+[package]
+name = "cargo-list-test-fixture"
+version = "0.0.0"
+edition = "2024"
+
diff --git a/tests/testsuite/cargo_add/feature_suggestion_single/in/src/lib.rs b/tests/testsuite/cargo_add/feature_suggestion_single/in/src/lib.rs
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs b/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs
new file mode 100644
index 000000000..682dd893a
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs
@@ -0,0 +1,23 @@
+use cargo_test_support::current_dir;
+use cargo_test_support::file;
+use cargo_test_support::prelude::*;
+use cargo_test_support::Project;
+
+#[cargo_test]
+fn case() {
+ let project = Project::from_template(current_dir!().join("in"));
+ let project_root = project.root();
+ let cwd = &project_root;
+
+ cargo_test_support::registry::Package::new("my-package", "0.1.0+my-package")
+ .feature("bar", &[])
+ .publish();
+
+ snapbox::cmd::Command::cargo_ui()
+ .arg("add")
+ .arg_line("my-package --features baz")
+ .current_dir(cwd)
+ .assert()
+ .failure()
+ .stderr_eq(file!["stderr.term.svg"]);
+}
diff --git a/tests/testsuite/cargo_add/feature_suggestion_single/stderr.term.svg b/tests/testsuite/cargo_add/feature_suggestion_single/stderr.term.svg
new file mode 100644
index 000000000..e53579bfb
--- /dev/null
+++ b/tests/testsuite/cargo_add/feature_suggestion_single/stderr.term.svg
@@ -0,0 +1,38 @@
+
diff --git a/tests/testsuite/cargo_add/mod.rs b/tests/testsuite/cargo_add/mod.rs
index a2881cfbc..283b10d07 100644
--- a/tests/testsuite/cargo_add/mod.rs
+++ b/tests/testsuite/cargo_add/mod.rs
@@ -21,6 +21,9 @@ mod dev_existing_path_base;
mod dev_prefer_existing_version;
mod dry_run;
mod empty_dep_name;
+mod feature_suggestion_multiple;
+mod feature_suggestion_none;
+mod feature_suggestion_single;
mod features;
mod features_activated_over_limit;
mod features_deactivated_over_limit;