diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-02-17 22:31:28 -0500 |
---|---|---|
committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-02-17 22:31:28 -0500 |
commit | 06480751a9d9ff1471455f31e3efc99d552a4975 (patch) | |
tree | d689028a78330eb0434165c638206b135bfe4844 /test/yomichan-test.js | |
parent | 7cbebf6897efb32c80c5e258f594d18861974bad (diff) |
Create yomichan-test script to reduce repeated code
Diffstat (limited to 'test/yomichan-test.js')
-rw-r--r-- | test/yomichan-test.js | 33 |
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(); } +}; |