]> git.kaiwu.me - njs.git/commitdiff
Added TypeScript test.
authorDmitry Volyntsev <xeioex@nginx.com>
Mon, 6 Jul 2020 18:37:13 +0000 (18:37 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Mon, 6 Jul 2020 18:37:13 +0000 (18:37 +0000)
auto/make
test/ts/test.ts [new file with mode: 0644]

index db78c77816934bc86e5a277cfa19943efe3bc13c..caac3a2e2be883b0395371bbcea1154c51289004 100644 (file)
--- a/auto/make
+++ b/auto/make
@@ -265,6 +265,9 @@ ts:
        cp nginx/ts/*.ts $NJS_BUILD_DIR/ts/
        cp src/ts/*.ts $NJS_BUILD_DIR/ts/
 
+ts_test: ts
+       tsc ./test/ts/test.ts
+
 dist:
        NJS_VER=`grep NJS_VERSION src/njs.h | sed -e 's/.*"\(.*\)".*/\1/'`; \\
        rm -rf njs-\$\${NJS_VER} \\
diff --git a/test/ts/test.ts b/test/ts/test.ts
new file mode 100644 (file)
index 0000000..a146b29
--- /dev/null
@@ -0,0 +1,66 @@
+/// <reference path="../../build/ts/ngx_http_js_module.d.ts" />
+
+function handler(r: NginxHTTPRequest) {
+    var bs: NjsByteString;
+    var s: string;
+
+    // builtin string vs NjsByteString
+
+    s = 'ordinary string';
+    bs = String.bytesFrom('000000', 'hex');
+    bs = s.toBytes();
+    bs = s.toUTF8();
+    bs.fromBytes(null, null);
+
+    s = bs + '';
+
+    // r.uri
+
+    if (r.uri == '/') {
+    }
+
+    // r.args
+
+    bs = r.args.x;
+    bs = r.args[1];
+    s = r.args.x.fromUTF8();
+    s = r.args.x + '';
+
+    // r.headersIn
+
+    r.headersIn['Accept'].fromBytes() == 'dddd';
+
+    // r.headersOut
+
+    r.headersOut['Content-Type'] = 'text/plain';
+    // Warning: r.headersOut['Content-Type'] = ['a', 'b'];
+    r.headersOut['Connection'] = undefined;
+    r.headersOut['Connection'] = null;
+
+    r.headersOut['Set-Cookie'] = ['aaa', 'bbb'];
+    r.headersOut['Foo'] = ['aaa', 'bbb'];
+
+    r.subrequest('/uri', reply => r.return(200, reply.headersOut["Location"]));
+
+    // r.log
+
+    r.log(bs);
+    r.log(r.headersOut['Connection']);
+
+    // r.variables
+
+    r.variables.a == 'a';
+    r.variables.cookie_a = 'b';
+
+    // r.subrequest
+    r.subrequest('/p/sub1').then(reply => r.return(reply.status));
+    r.subrequest('/p/sub2', reply => r.return(reply.status));
+    r.subrequest('/p/sub3', {detached:true});
+    r.subrequest('/p/sub4', 'a=1&b=2').then(reply => r.return(reply.status,
+                                        JSON.stringify(JSON.parse(reply.responseBody))));
+
+    // builtin objects
+
+    njs.dump('asdf');
+    njs.version != process.argv[1];
+}