From 90a167a1a2bb52017a412897381b114db595afad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 23 Apr 2024 21:54:34 +0100 Subject: test: add private npm registry (#23510) This commit adds a "private npm registry" to the test server. This registry requires to send an appropriate Authorization header. Towards https://github.com/denoland/deno/issues/16105 --- tests/integration/npm_tests.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'tests/integration/npm_tests.rs') diff --git a/tests/integration/npm_tests.rs b/tests/integration/npm_tests.rs index 1b7088e7c..3bfd62680 100644 --- a/tests/integration/npm_tests.rs +++ b/tests/integration/npm_tests.rs @@ -3,9 +3,11 @@ use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::serde_json::Value; +use deno_fetch::reqwest; use pretty_assertions::assert_eq; use test_util as util; use test_util::itest; +use url::Url; use util::assert_contains; use util::env_vars_for_npm_tests; use util::http_server; @@ -3081,3 +3083,29 @@ fn run_cjs_in_node_modules_folder() { .run() .assert_matches_text("hi\n"); } + +#[tokio::test] +async fn test_private_npm_registry() { + let _server = http_server(); + + // For now just check that private server rejects requests without proper + // auth header. + + let client = reqwest::Client::new(); + + let url = + Url::parse("http://127.0.0.1:4252/npm/registry/@denotest/bin/0.5.0") + .unwrap(); + + let req = reqwest::Request::new(reqwest::Method::GET, url.clone()); + let resp = client.execute(req).await.unwrap(); + assert_eq!(resp.status(), reqwest::StatusCode::UNAUTHORIZED); + + let mut req = reqwest::Request::new(reqwest::Method::GET, url.clone()); + req.headers_mut().insert( + reqwest::header::AUTHORIZATION, + reqwest::header::HeaderValue::from_static("Bearer private-reg-token"), + ); + let resp = client.execute(req).await.unwrap(); + assert_eq!(resp.status(), reqwest::StatusCode::OK); +} -- cgit v1.2.3