[TS] Make compiler checks a bit more aggressive, fix indentation
[ldk-java] / ts / test / tests.mts
1 import * as rawldk from "../bindings.mjs";
2 import * as ldk from "../index.mjs";
3
4 const tests: Array<Function> = [];
5
6 tests.push(async () => {
7         const result = rawldk.CResult_boolLightningErrorZ_ok(true);
8         console.assert(rawldk.CResult_boolLightningErrorZ_is_ok(result));
9         console.assert(rawldk.CResult_boolLightningErrorZ_get_ok(result));
10         rawldk.CResult_boolLightningErrorZ_free(result);
11         console.assert(rawldk.CResult_boolLightningErrorZ_ok(false) == result); // malloc doesn't need to guarantee this, but currently does
12         console.assert(rawldk.CResult_boolLightningErrorZ_is_ok(result));
13         console.assert(!rawldk.CResult_boolLightningErrorZ_get_ok(result));
14         rawldk.CResult_boolLightningErrorZ_free(result);
15
16         /*var pk_arr = [];
17         for (var i = 0; i < 33; i++) { pk_arr[i] = 42; }
18         const pk_bytes = encodeUint8Array(pk_arr);
19         const pk_res = wasm.TS_CResult_PublicKeyErrorZ_ok(pk_bytes);
20         console.assert(wasm.TS_CResult_PublicKeyErrorZ_is_ok(pk_res));
21         const pk_res_bytes = wasm.TS_LDKCResult_PublicKeyErrorZ_get_ok(pk_res);
22         wasm.TS_CResult_PublicKeyErrorZ_free(pk_res);*/
23         return true;
24 });
25
26 tests.push(async () => {
27         const ping = ldk.Ping.constructor_new(10, 2);
28         const new_ping = ldk.Ping.constructor_read(ping.write());
29         if (!(new_ping instanceof ldk.Result_PingDecodeErrorZ_OK)) return false;
30         if (!new_ping.is_ok()) return false;
31         if (new_ping.res.get_byteslen() != 2) return false;
32         if (new_ping.res.get_ponglen() != 10) return false;
33         return true;
34 });
35
36 tests.push(async () => {
37         const outpoint = ldk.OutPoint.constructor_new(new Uint8Array(32), 4);
38         const read_outpoint = ldk.OutPoint.constructor_read(outpoint.write());
39         if (!(read_outpoint instanceof ldk.Result_OutPointDecodeErrorZ_OK)) return false;
40         if (!read_outpoint.res.eq(outpoint)) return false;
41         if (read_outpoint.res.hash() != outpoint.hash()) return false;
42         const chan_id = read_outpoint.res.to_channel_id();
43         if (chan_id.length != 32) return false;
44         if (chan_id[31] != 4) return false;
45         return true;
46 });
47
48 export async function run_tests(wasm_path: string) {
49         await rawldk.initializeWasm(wasm_path);
50
51         var test_runs = [];
52         for (const test of tests) {
53                 test_runs.push(test());
54         }
55         const results = await Promise.all(test_runs);
56         console.log("test results: " + results);
57         const result = results.every((v) => { return v === true });
58         console.log("all tests passed: " + result);
59         return result;
60 }