summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-09-04 13:21:02 +0100
committerGitHub <noreply@github.com>2024-09-04 14:21:02 +0200
commit0e0a5c24ea8b17d410c30bf3fcb70c749b35f8b3 (patch)
tree041d7c196780cae78fa320de50520263733a43fe
parent5ee671311a174b5461483db788f732fe736b6549 (diff)
test: run js_unit_tests with `--unstable-*` flags (#25394)
-rw-r--r--runtime/js/99_main.js35
-rw-r--r--runtime/lib.rs2
-rw-r--r--tests/integration/js_unit_tests.rs32
3 files changed, 44 insertions, 25 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index 6dd75b415..d0171acd2 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -722,26 +722,27 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) {
target,
);
+ // TODO(bartlomieju): this is not ideal, but because we use `ObjectAssign`
+ // above any properties that are defined elsewhere using `Object.defineProperty`
+ // are lost.
+ let jupyterNs = undefined;
+ ObjectDefineProperty(finalDenoNs, "jupyter", {
+ get() {
+ if (jupyterNs) {
+ return jupyterNs;
+ }
+ throw new Error(
+ "Deno.jupyter is only available in `deno jupyter` subcommand.",
+ );
+ },
+ set(val) {
+ jupyterNs = val;
+ },
+ });
+
// TODO(bartlomieju): deprecate --unstable
if (unstableFlag) {
ObjectAssign(finalDenoNs, denoNsUnstable);
- // TODO(bartlomieju): this is not ideal, but because we use `ObjectAssign`
- // above any properties that are defined elsewhere using `Object.defineProperty`
- // are lost.
- let jupyterNs = undefined;
- ObjectDefineProperty(finalDenoNs, "jupyter", {
- get() {
- if (jupyterNs) {
- return jupyterNs;
- }
- throw new Error(
- "Deno.jupyter is only available in `deno jupyter` subcommand.",
- );
- },
- set(val) {
- jupyterNs = val;
- },
- });
} else {
for (let i = 0; i <= unstableFeatures.length; i++) {
const id = unstableFeatures[i];
diff --git a/runtime/lib.rs b/runtime/lib.rs
index ed3f9fbc6..c8ab099f1 100644
--- a/runtime/lib.rs
+++ b/runtime/lib.rs
@@ -83,7 +83,7 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[UnstableGranularFlag] = &[
UnstableGranularFlag {
name: ops::http::UNSTABLE_FEATURE_NAME,
help_text: "Enable unstable HTTP APIs",
- show_in_help: false,
+ show_in_help: true,
id: 5,
},
UnstableGranularFlag {
diff --git a/tests/integration/js_unit_tests.rs b/tests/integration/js_unit_tests.rs
index 0baa114b4..b6a204157 100644
--- a/tests/integration/js_unit_tests.rs
+++ b/tests/integration/js_unit_tests.rs
@@ -116,22 +116,40 @@ util::unit_test_factory!(
fn js_unit_test(test: String) {
let _g = util::http_server();
- let deno = util::deno_cmd()
+ let mut deno = util::deno_cmd()
.current_dir(util::root_path())
.arg("test")
.arg("--config")
.arg(util::deno_config_path())
.arg("--no-lock")
- .arg("--unstable")
+ // TODO(bartlomieju): would be better if we could apply this unstable
+ // flag to particular files, but there's many of them that rely on unstable
+ // net APIs (`reusePort` in `listen` and `listenTls`; `listenDatagram`, `createHttpClient`)
+ .arg("--unstable-net")
+ .arg("--unstable-http")
.arg("--location=http://127.0.0.1:4545/")
.arg("--no-prompt");
+ if test == "broadcast_channel_test" {
+ deno = deno.arg("--unstable-broadcast-channel");
+ }
+
+ if test == "cron_test" {
+ deno = deno.arg("--unstable-cron");
+ }
+
+ if test.contains("kv_") {
+ deno = deno.arg("--unstable-kv");
+ }
+
+ if test == "worker_permissions_test" || test == "worker_test" {
+ deno = deno.arg("--unstable-worker-options");
+ }
+
// TODO(mmastrac): it would be better to just load a test CA for all tests
- let deno = if test == "websocket_test" || test == "tls_sni_test" {
- deno.arg("--unsafely-ignore-certificate-errors")
- } else {
- deno
- };
+ if test == "websocket_test" || test == "tls_sni_test" {
+ deno = deno.arg("--unsafely-ignore-certificate-errors");
+ }
let mut deno = deno
.arg("-A")