diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-05-03 01:00:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 00:00:38 +0000 |
commit | cf0579c7d4b69fcb205fb0d5320e0a00012720ee (patch) | |
tree | 114fe9f5a83aa17b01374de39364cfdf176db147 /tests/util/server/src/servers/mod.rs | |
parent | 1b27b5839624ebf9fef65cea28a17281f3b79a74 (diff) |
test: npm registry handles two test scopes (#23663)
This commit updates our testing npm registry to handle
additional `@denotest2` scope in addition to `@denotest`
scope. I might have to update it further in the future to handle
additional scopes, but it's good enough for now.
Diffstat (limited to 'tests/util/server/src/servers/mod.rs')
-rw-r--r-- | tests/util/server/src/servers/mod.rs | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/tests/util/server/src/servers/mod.rs b/tests/util/server/src/servers/mod.rs index 38f6d8dfd..abc451715 100644 --- a/tests/util/server/src/servers/mod.rs +++ b/tests/util/server/src/servers/mod.rs @@ -1217,23 +1217,26 @@ async fn private_npm_registry1( } fn handle_custom_npm_registry_path( + scope_name: &str, path: &str, test_npm_registry: &npm::TestNpmRegistry, ) -> Result<Option<Response<UnsyncBoxBody<Bytes, Infallible>>>, anyhow::Error> { - let parts = path + let mut parts = path .split('/') .filter(|p| !p.is_empty()) .collect::<Vec<_>>(); + let remainder = parts.split_off(1); + let name = parts[0]; + let package_name = format!("{}/{}", scope_name, name); - let package_name = format!("@denotest/{}", parts[0]); - if parts.len() == 2 { + if remainder.len() == 1 { if let Some(file_bytes) = test_npm_registry - .tarball_bytes(&package_name, parts[1].trim_end_matches(".tgz"))? + .tarball_bytes(&package_name, remainder[0].trim_end_matches(".tgz"))? { let file_resp = custom_headers("file.tgz", file_bytes); return Ok(Some(file_resp)); } - } else if parts.len() == 1 { + } else if remainder.is_empty() { if let Some(registry_file) = test_npm_registry.registry_file(&package_name)? { @@ -1256,12 +1259,16 @@ async fn try_serve_npm_registry( mut testdata_file_path: PathBuf, test_npm_registry: &npm::TestNpmRegistry, ) -> Option<Result<Response<UnsyncBoxBody<Bytes, Infallible>>, anyhow::Error>> { - if let Some(suffix) = - test_npm_registry.strip_denotest_prefix_from_uri_path(uri_path) + if let Some((scope_name, package_name_with_path)) = test_npm_registry + .get_test_scope_and_package_name_with_path_from_uri_path(uri_path) { - // serve all requests to the `DENOTEST_SCOPE_NAME` using the file system - // at that path - match handle_custom_npm_registry_path(suffix, test_npm_registry) { + // serve all requests to the `DENOTEST_SCOPE_NAME` or `DENOTEST2_SCOPE_NAME` + // using the file system at that path + match handle_custom_npm_registry_path( + scope_name, + package_name_with_path, + test_npm_registry, + ) { Ok(Some(response)) => return Some(Ok(response)), Ok(None) => {} // ignore, not found Err(err) => { |