summaryrefslogtreecommitdiff
path: root/test/yomichan-test.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-02-17 22:31:28 -0500
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-02-17 22:31:28 -0500
commit06480751a9d9ff1471455f31e3efc99d552a4975 (patch)
treed689028a78330eb0434165c638206b135bfe4844 /test/yomichan-test.js
parent7cbebf6897efb32c80c5e258f594d18861974bad (diff)
Create yomichan-test script to reduce repeated code
Diffstat (limited to 'test/yomichan-test.js')
-rw-r--r--test/yomichan-test.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/yomichan-test.js b/test/yomichan-test.js
new file mode 100644
index 00000000..602b8d78
--- /dev/null
+++ b/test/yomichan-test.js
@@ -0,0 +1,33 @@
+const fs = require('fs');
+const path = require('path');
+
+
+let JSZip = null;
+
+function requireScript(fileName, exportNames, variables) {
+ const absoluteFileName = path.join(__dirname, '..', fileName);
+ const source = fs.readFileSync(absoluteFileName, {encoding: 'utf8'});
+ const exportNamesString = Array.isArray(exportNames) ? exportNames.join(',') : '';
+ const variablesArgumentName = '__variables__';
+ let variableString = '';
+ if (typeof variables === 'object' && variables !== null) {
+ variableString = Object.keys(variables).join(',');
+ variableString = `const {${variableString}} = ${variablesArgumentName};`;
+ }
+ return Function(variablesArgumentName, `'use strict';${variableString}${source}\n;return {${exportNamesString}};`)(variables);
+}
+
+function getJSZip() {
+ if (JSZip === null) {
+ process.noDeprecation = true; // Suppress a warning about JSZip
+ JSZip = require(path.join(__dirname, '../ext/mixed/lib/jszip.min.js'));
+ process.noDeprecation = false;
+ }
+ return JSZip;
+}
+
+
+module.exports = {
+ requireScript,
+ get JSZip() { return getJSZip(); }
+};