ca657b5b06
* refactor: compile with esmoudle interop * Rigidify code replacement by using Lodash templates. * Generate zip file bundle. * Use yarn's fslib to implement the fake filesystem. Leverage the work done by yarn, rather than reimplementing from scratch. This means the fake fs is now reading from a zip file in the binary. A few methods need custom implementations as the fake fs is not writable. These were copied and adjusted from the yarn ZipOpenFS. * Add test suite using the built artefact. Smoke tests the different fs methods. Not perfect in any world, but better than nothing. * Fix tsc on Windows - globbing doesn't work there. There's probably a cleaner way to do this... * Bump version. * Dep bumps. * fixup 9d57b32: make fs patch code clearer. * fixup 3771c720: simplify test to just use require directly. --------- Co-authored-by: calebboyd <caleb.boyd@gmail.com>
24 lines
771 B
JavaScript
24 lines
771 B
JavaScript
const { mkdtemp, copyFile } = require('fs/promises')
|
|
const os = require('os')
|
|
const path = require('path')
|
|
const rimraf = require('rimraf')
|
|
const cp = require('child_process')
|
|
|
|
async function runTests() {
|
|
const tempdir = await mkdtemp(path.join(os.tmpdir(), 'nexe-integration-tests-'))
|
|
const executable = path.join(tempdir, path.basename(process.argv[0]))
|
|
await copyFile(process.argv[0], executable)
|
|
process.on('beforeExit', () => rimraf.sync(tempdir))
|
|
cp.spawn(executable,
|
|
[
|
|
path.join(tempdir, 'node_modules/mocha/bin/mocha.js'),
|
|
path.join(tempdir, 'test/integration/tests.integration-spec.js')
|
|
],
|
|
{ stdio: ['inherit', 'inherit', 'inherit', 'ipc'], cwd: tempdir }
|
|
).on('exit', (code) => {
|
|
process.exitCode = code
|
|
})
|
|
}
|
|
|
|
runTests()
|