aboutsummaryrefslogtreecommitdiff
path: root/test/run_tests.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/run_tests.js')
-rw-r--r--test/run_tests.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/run_tests.js b/test/run_tests.js
new file mode 100644
index 000000000..0c7b2c4c1
--- /dev/null
+++ b/test/run_tests.js
@@ -0,0 +1,56 @@
+
+/**
+ * Bridge between the mocha test runner / nodejs
+ * and the typescript / the wallet's module system.
+ *
+ * The test cases use better-assert as assert library
+ * with mocha's bdd UI.
+ */
+
+"use strict";
+
+let assert = require("better-assert");
+let vm = require("vm");
+let fs = require("fs");
+let instrument = require("typhonjs-istanbul-instrument-jspm").default;
+
+if ("function" !== typeof run) {
+ throw Error("test must be run with 'mocha --delay ...'");
+}
+
+let emsc = require("../lib/emscripten/libwrapper.js");
+
+// Do it here, since it breaks 'require'' for libwrapper
+let System = require("systemjs");
+
+
+// When instrumenting code with istanbul,
+// automatic module type detection fails,
+// thus we specify it here manually.
+System.config({
+ defaultJSExtensions: true,
+ meta: {
+ './test/tests/taler.js': {
+ format: 'register'
+ },
+ './lib/wallet/*': {
+ format: 'register'
+ }
+ }
+});
+
+instrument(System);
+
+let mod = System.newModule({Module: emsc});
+let modName = System.normalizeSync(__dirname + "/../lib/emscripten/emsc");
+console.log("registering", modName);
+System.set(modName, mod);
+
+System.import("./test/tests/taler.js")
+ .then((t) => {
+ t.declareTests(assert, context, it);
+ setTimeout(run, 1);
+ })
+ .catch((e) => {
+ console.error("failed to load module", e.stack);
+ });