diff --git a/crates/dl/CHANGELOG.md b/crates/download/CHANGELOG.md similarity index 100% rename from crates/dl/CHANGELOG.md rename to crates/download/CHANGELOG.md diff --git a/crates/dl/Cargo.toml b/crates/download/Cargo.toml similarity index 91% rename from crates/dl/Cargo.toml rename to crates/download/Cargo.toml index f4936aa..ba9116a 100644 --- a/crates/dl/Cargo.toml +++ b/crates/download/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "moon_extension_dl" +name = "moon_extension_download" version = "0.0.1" edition = "2021" license = "MIT" diff --git a/crates/dl/src/lib.rs b/crates/download/src/lib.rs similarity index 94% rename from crates/dl/src/lib.rs rename to crates/download/src/lib.rs index 0c4bc4d..e36b29d 100644 --- a/crates/dl/src/lib.rs +++ b/crates/download/src/lib.rs @@ -12,7 +12,7 @@ extern "ExtismHost" { } #[derive(Args)] -pub struct DlExtensionArgs { +pub struct DownloadExtensionArgs { #[arg(long, required = true)] pub url: String, @@ -25,7 +25,7 @@ pub struct DlExtensionArgs { #[plugin_fn] pub fn execute_extension(Json(input): Json) -> FnResult<()> { - let args = parse_args::(&input.args)?; + let args = parse_args::(&input.args)?; if !args.url.starts_with("http") { return Err(plugin_err!("A valid URL is required for downloading.")); diff --git a/crates/dl/tests/dl_test.rs b/crates/download/tests/download_test.rs similarity index 99% rename from crates/dl/tests/dl_test.rs rename to crates/download/tests/download_test.rs index 6fd9c61..ea4d411 100644 --- a/crates/dl/tests/dl_test.rs +++ b/crates/download/tests/download_test.rs @@ -2,7 +2,7 @@ use moon_pdk_test_utils::{create_extension, ExecuteExtensionInput}; use starbase_sandbox::create_empty_sandbox; use std::fs; -mod dl { +mod download { use super::*; #[test] diff --git a/crates/dlu/CHANGELOG.md b/crates/unpack/CHANGELOG.md similarity index 100% rename from crates/dlu/CHANGELOG.md rename to crates/unpack/CHANGELOG.md diff --git a/crates/dlu/Cargo.toml b/crates/unpack/Cargo.toml similarity index 71% rename from crates/dlu/Cargo.toml rename to crates/unpack/Cargo.toml index 052dc7a..bc93b9f 100644 --- a/crates/dlu/Cargo.toml +++ b/crates/unpack/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "moon_extension_dlu" +name = "moon_extension_unpack" version = "0.0.1" edition = "2021" license = "MIT" @@ -16,3 +16,7 @@ starbase_archive = { version = "0.2.5", default-features = false, features = [ "tar-gz", "zip", ] } + +[dev-dependencies] +moon_pdk_test_utils = { workspace = true } +starbase_sandbox = { workspace = true } diff --git a/crates/dlu/src/lib.rs b/crates/unpack/src/lib.rs similarity index 96% rename from crates/dlu/src/lib.rs rename to crates/unpack/src/lib.rs index 7790c48..fe1980d 100644 --- a/crates/dlu/src/lib.rs +++ b/crates/unpack/src/lib.rs @@ -14,7 +14,7 @@ extern "ExtismHost" { } #[derive(Args)] -pub struct DluExtensionArgs { +pub struct UnpackExtensionArgs { #[arg(long, short = 's', required = true)] pub src: String, @@ -27,7 +27,7 @@ pub struct DluExtensionArgs { #[plugin_fn] pub fn execute_extension(Json(input): Json) -> FnResult<()> { - let args = parse_args::(&input.args)?; + let args = parse_args::(&input.args)?; // Determine the correct input. If the input is a URL, attempt to download // the file, otherwise use the file directly (if within our whitelist). diff --git a/crates/unpack/tests/unpack_test.rs b/crates/unpack/tests/unpack_test.rs new file mode 100644 index 0000000..71c78be --- /dev/null +++ b/crates/unpack/tests/unpack_test.rs @@ -0,0 +1,19 @@ +use moon_pdk_test_utils::{create_extension, ExecuteExtensionInput}; +use starbase_sandbox::create_empty_sandbox; +use std::fs; + +mod unpack { + use super::*; + + #[test] + #[should_panic(expected = "the following required arguments were not provided")] + fn errors_if_no_args() { + let sandbox = create_empty_sandbox(); + let plugin = create_extension("test", sandbox.path()); + + plugin.execute_extension(ExecuteExtensionInput { + args: vec![], + context: plugin.create_context(sandbox.path()), + }); + } +}