aboutsummaryrefslogtreecommitdiff
path: root/nginx/t/stream_js_fetch_https.t
diff options
context:
space:
mode:
authorDmitry Volyntsev <xeioex@nginx.com>2024-06-14 20:54:28 -0700
committerDmitry Volyntsev <xeioexception@gmail.com>2024-09-17 18:05:57 -0700
commit201b127679e27fe63eff5c1b4356ec4ed9ec4611 (patch)
tree2477939f07f646ee6137a7d30ccc8e807206da61 /nginx/t/stream_js_fetch_https.t
parent9b6744129ce4c18e74b5e41cd1da66f2cbadcf36 (diff)
downloadnjs-201b127679e27fe63eff5c1b4356ec4ed9ec4611.tar.gz
njs-201b127679e27fe63eff5c1b4356ec4ed9ec4611.zip
Modules: introduced QuickJS engine.
"js_engine" directive is introduced which sets JavaScript engine. When the module is built with QuickJS library "js_engine qjs;" sets QuickJS engine for the current block. By default njs engine is used. For example, nginx.conf: location /a { js_engine qjs; # will be handled by QuickJS js_content main.handler; } location /b { # will be handled by njs js_content main.handler; } QuickJS engine implements drop-in replacement for nginx/njs objects with the following exceptions: * nginx module API to be added later: ngx.fetch(), ngx.shared.dict. * Built-in modules to be added later: fs, crypto, WebCrypto, xml. * NJS specific API: njs.dump(), njs.on(), console.dump(). * js_preload_object directive.
Diffstat (limited to 'nginx/t/stream_js_fetch_https.t')
-rw-r--r--nginx/t/stream_js_fetch_https.t16
1 files changed, 14 insertions, 2 deletions
diff --git a/nginx/t/stream_js_fetch_https.t b/nginx/t/stream_js_fetch_https.t
index c49b833b..5d7c5c20 100644
--- a/nginx/t/stream_js_fetch_https.t
+++ b/nginx/t/stream_js_fetch_https.t
@@ -47,6 +47,10 @@ http {
location /njs {
js_content test.njs;
}
+
+ location /engine {
+ js_content test.engine;
+ }
}
server {
@@ -159,6 +163,10 @@ $t->write_file('test.js', <<EOF);
r.return(200, njs.version);
}
+ function engine(r) {
+ r.return(200, njs.engine);
+ }
+
function preread(s) {
s.on('upload', function (data, flags) {
if (data.startsWith('GO')) {
@@ -193,7 +201,7 @@ $t->write_file('test.js', <<EOF);
(r.status == 200) ? s.allow(): s.deny();
}
- export default {njs: test_njs, preread, access_ok, access_nok};
+ export default {njs: test_njs, engine, preread, access_ok, access_nok};
EOF
my $d = $t->testdir();
@@ -263,7 +271,11 @@ foreach my $name ('default.example.com', '1.example.com') {
. $t->read_file('intermediate.crt'));
}
-$t->try_run('no njs.fetch')->plan(6);
+$t->try_run('no njs.fetch');
+
+plan(skip_all => 'not yet') if http_get('/engine') =~ /QuickJS$/m;
+
+$t->plan(6);
$t->run_daemon(\&dns_daemon, port(8981), $t);
$t->waitforfile($t->testdir . '/' . port(8981));