From 261aa4aa3ae7dd5054d39b80ab0c8052bd116dd6 Mon Sep 17 00:00:00 2001 From: Ashley Lewis Date: Wed, 21 Aug 2019 06:55:07 -0700 Subject: [PATCH] feat#447: Add 'assets' key to Project --- src/settings/project/mod.rs | 9 +++++++++ src/settings/project/tests/mod.rs | 15 +++++++++++++++ src/settings/project/tests/tomls/assets.toml | 11 +++++++++++ 3 files changed, 35 insertions(+) create mode 100644 src/settings/project/tests/tomls/assets.toml diff --git a/src/settings/project/mod.rs b/src/settings/project/mod.rs index 9ef0e589b..e5597e395 100644 --- a/src/settings/project/mod.rs +++ b/src/settings/project/mod.rs @@ -29,6 +29,7 @@ pub struct Project { pub routes: Option>, #[serde(rename = "kv-namespaces")] pub kv_namespaces: Option>, + pub assets: Option, } impl Project { @@ -47,6 +48,7 @@ impl Project { routes: None, kv_namespaces: None, webpack_config: None, + assets: None, }; let toml = toml::to_string(&project)?; @@ -90,6 +92,7 @@ fn get_project_config(config_path: &Path) -> Result { if let Ok(values) = kv_namespaces { let old_format = values.iter().any(|val| val.clone().into_str().is_ok()); + // TODO: remove old format deprecation warnings if old_format { message::warn("As of 1.1.0 the kv-namespaces format has been stabilized"); message::info("Please add a section like this in your `wrangler.toml` for each KV Namespace you wish to bind:"); @@ -125,5 +128,11 @@ id = "0f2ac74b498b48028cb68387c421e279" } } +#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +pub struct Assets { + directory: String, + kv: String, +} + #[cfg(test)] mod tests; diff --git a/src/settings/project/tests/mod.rs b/src/settings/project/tests/mod.rs index ffb6ad6dc..6927a0165 100644 --- a/src/settings/project/tests/mod.rs +++ b/src/settings/project/tests/mod.rs @@ -37,6 +37,21 @@ fn it_builds_from_config_with_kv() { } } +#[test] +fn it_builds_from_config_with_assets() { + let toml_path = toml_fixture_path("assets"); + + let project = get_project_config(&toml_path).unwrap(); + + match project.assets { + Some(assets) => { + assert_eq!(assets.directory, "./"); + assert_eq!(assets.kv, "prodKV"); + } + None => assert!(false), + } +} + fn toml_fixture_path(fixture: &str) -> PathBuf { let current_dir = env::current_dir().unwrap(); diff --git a/src/settings/project/tests/tomls/assets.toml b/src/settings/project/tests/tomls/assets.toml new file mode 100644 index 000000000..2f8a33ac3 --- /dev/null +++ b/src/settings/project/tests/tomls/assets.toml @@ -0,0 +1,11 @@ +name = "worker" +type = "webpack" +zone_id = "" +private = false +account_id = "" +route = "" +assets = { directory = "./", kv = "prodKV" } + +[[kv-namespaces]] +id = "somecrazylongidentifierstring" +binding = "prodKV"