summaryrefslogtreecommitdiff
path: root/cli/tools/installer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/installer.rs')
-rw-r--r--cli/tools/installer.rs71
1 files changed, 71 insertions, 0 deletions
diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs
index f854eafe4..a48599ada 100644
--- a/cli/tools/installer.rs
+++ b/cli/tools/installer.rs
@@ -382,6 +382,10 @@ async fn resolve_shim_data(
executable_args.push("--unstable".to_string());
}
+ for feature in &flags.unstable_config.features {
+ executable_args.push(format!("--unstable-{}", feature));
+ }
+
if flags.no_remote {
executable_args.push("--no-remote".to_string());
}
@@ -707,6 +711,73 @@ mod tests {
}
#[tokio::test]
+ async fn install_unstable_legacy() {
+ let shim_data = resolve_shim_data(
+ &Flags {
+ unstable_config: UnstableConfig {
+ legacy_flag_enabled: true,
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ &InstallFlags {
+ module_url: "http://localhost:4545/echo_server.ts".to_string(),
+ args: vec![],
+ name: None,
+ root: Some(env::temp_dir().to_string_lossy().to_string()),
+ force: false,
+ },
+ )
+ .await
+ .unwrap();
+
+ assert_eq!(shim_data.name, "echo_server");
+ assert_eq!(
+ shim_data.args,
+ vec![
+ "run",
+ "--unstable",
+ "--no-config",
+ "http://localhost:4545/echo_server.ts",
+ ]
+ );
+ }
+
+ #[tokio::test]
+ async fn install_unstable_features() {
+ let shim_data = resolve_shim_data(
+ &Flags {
+ unstable_config: UnstableConfig {
+ features: vec!["kv".to_string(), "cron".to_string()],
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ &InstallFlags {
+ module_url: "http://localhost:4545/echo_server.ts".to_string(),
+ args: vec![],
+ name: None,
+ root: Some(env::temp_dir().to_string_lossy().to_string()),
+ force: false,
+ },
+ )
+ .await
+ .unwrap();
+
+ assert_eq!(shim_data.name, "echo_server");
+ assert_eq!(
+ shim_data.args,
+ vec![
+ "run",
+ "--unstable-kv",
+ "--unstable-cron",
+ "--no-config",
+ "http://localhost:4545/echo_server.ts",
+ ]
+ );
+ }
+
+ #[tokio::test]
async fn install_inferred_name_from_parent() {
let shim_data = resolve_shim_data(
&Flags::default(),