CLI: don't enable default features in --no-default-features builds (#5147)

* Don't push default features in `--no-default-features` builds

Signed-off-by: Nico Burns <nico@nicoburns.com>

* add tests for default features and no default features outside of renderers

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
This commit is contained in:
Nico BurnsandEvan Almloff authored and GitHub committed 2026-01-14 23:24:18 +00:00
1 parent 352e59ea01
commit 761c9503fd
7 files changed
+80 -13

No files matched your search

+21 -1
View File
@@ -255,7 +255,27 @@ async fn test_harnesses() {
let server = t.server.unwrap();
assert_eq!(server.bundle, BundleFormat::Server);
assert_eq!(server.triple, Triple::host());
})
}),
TestHarnessBuilder::new("harness-web-with-no-default-features")
.deps(r#"dioxus = { workspace = true }"#)
.fetr(r#"default=["other"]"#)
.fetr(r#"other=[]"#)
.asrt(r#"dx build --no-default-features --web"#, |targets| async move {
let t = targets.unwrap();
assert_eq!(t.client.bundle, BundleFormat::Web);
assert_eq!(t.client.features, vec!["dioxus/web"]);
assert!(t.server.is_none());
}),
TestHarnessBuilder::new("harness-web-with-default-features")
.deps(r#"dioxus = { workspace = true }"#)
.fetr(r#"default=["other"]"#)
.fetr(r#"other=[]"#)
.asrt(r#"dx build --web"#, |targets| async move {
let t = targets.unwrap();
assert_eq!(t.client.bundle, BundleFormat::Web);
assert_eq!(t.client.features.iter().map(|s| s.as_str()).collect::<HashSet<_>>(), ["dioxus/web", "other"].into_iter().collect::<HashSet<_>>());
assert!(t.server.is_none());
}),
])
.await;
}