summaryrefslogtreecommitdiff
path: root/tests/util/server/src/servers/npm_registry.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-05-23 22:26:23 +0100
committerGitHub <noreply@github.com>2024-05-23 23:26:23 +0200
commit959739f609dddacde3bbe9ecede2f409214fb34c (patch)
tree04d1776efbd3561205829f78288d26b6e14c3429 /tests/util/server/src/servers/npm_registry.rs
parent5de30c53239ac74843725d981afc0bb8c45bdf16 (diff)
FUTURE: initial support for .npmrc file (#23560)
This commit adds initial support for ".npmrc" files. Currently we only discover ".npmrc" files next to "package.json" files and discovering these files in user home dir is left for a follow up. This pass supports "_authToken" and "_auth" configuration for providing authentication. LSP support has been left for a follow up PR. Towards https://github.com/denoland/deno/issues/16105
Diffstat (limited to 'tests/util/server/src/servers/npm_registry.rs')
-rw-r--r--tests/util/server/src/servers/npm_registry.rs40
1 files changed, 39 insertions, 1 deletions
diff --git a/tests/util/server/src/servers/npm_registry.rs b/tests/util/server/src/servers/npm_registry.rs
index eadfafe02..7e5547b5b 100644
--- a/tests/util/server/src/servers/npm_registry.rs
+++ b/tests/util/server/src/servers/npm_registry.rs
@@ -33,6 +33,12 @@ pub fn public_npm_registry(port: u16) -> Vec<LocalBoxFuture<'static, ()>> {
}
const PRIVATE_NPM_REGISTRY_AUTH_TOKEN: &str = "private-reg-token";
+const PRIVATE_NPM_REGISTRY_2_AUTH_TOKEN: &str = "private-reg-token2";
+
+// `deno:land` encoded using base64
+const PRIVATE_NPM_REGISTRY_AUTH_BASE64: &str = "ZGVubzpsYW5k";
+// `deno:land2` encoded using base64
+const PRIVATE_NPM_REGISTRY_2_AUTH_BASE64: &str = "ZGVubzpsYW5kMg==";
pub fn private_npm_registry1(port: u16) -> Vec<LocalBoxFuture<'static, ()>> {
run_npm_server(
@@ -42,6 +48,14 @@ pub fn private_npm_registry1(port: u16) -> Vec<LocalBoxFuture<'static, ()>> {
)
}
+pub fn private_npm_registry2(port: u16) -> Vec<LocalBoxFuture<'static, ()>> {
+ run_npm_server(
+ port,
+ "npm private registry server error",
+ private_npm_registry2_handler,
+ )
+}
+
fn run_npm_server<F, S>(
port: u16,
error_msg: &'static str,
@@ -91,7 +105,9 @@ async fn private_npm_registry1_handler(
.get("authorization")
.and_then(|x| x.to_str().ok())
.unwrap_or_default();
- if auth != format!("Bearer {}", PRIVATE_NPM_REGISTRY_AUTH_TOKEN) {
+ if auth != format!("Bearer {}", PRIVATE_NPM_REGISTRY_AUTH_TOKEN)
+ && auth != format!("Basic {}", PRIVATE_NPM_REGISTRY_AUTH_BASE64)
+ {
return Ok(
Response::builder()
.status(StatusCode::UNAUTHORIZED)
@@ -103,6 +119,28 @@ async fn private_npm_registry1_handler(
handle_req_for_registry(req, &npm::PRIVATE_TEST_NPM_REGISTRY_1).await
}
+async fn private_npm_registry2_handler(
+ req: Request<hyper::body::Incoming>,
+) -> Result<Response<UnsyncBoxBody<Bytes, Infallible>>, anyhow::Error> {
+ let auth = req
+ .headers()
+ .get("authorization")
+ .and_then(|x| x.to_str().ok())
+ .unwrap_or_default();
+ if auth != format!("Bearer {}", PRIVATE_NPM_REGISTRY_2_AUTH_TOKEN)
+ && auth != format!("Basic {}", PRIVATE_NPM_REGISTRY_2_AUTH_BASE64)
+ {
+ return Ok(
+ Response::builder()
+ .status(StatusCode::UNAUTHORIZED)
+ .body(empty_body())
+ .unwrap(),
+ );
+ }
+
+ handle_req_for_registry(req, &npm::PRIVATE_TEST_NPM_REGISTRY_2).await
+}
+
async fn handle_req_for_registry(
req: Request<Incoming>,
test_npm_registry: &npm::TestNpmRegistry,