2023-02-18 02:49:18 +00:00
|
|
|
const { Module: { createRequire } } = require('module');
|
|
|
|
const createdRequire = createRequire(__filename);
|
|
|
|
|
|
|
|
// Although, require('../common') works locally, that couldn't be used here
|
|
|
|
// because we set NODE_TEST_DIR=/Users/iojs/node-tmp on Jenkins CI.
|
2023-05-04 15:27:54 +00:00
|
|
|
const { expectWarning, mustNotCall } = createdRequire(process.env.COMMON_DIRECTORY);
|
2023-02-18 02:49:18 +00:00
|
|
|
|
2023-05-04 15:27:54 +00:00
|
|
|
if (createdRequire('./sea-config.json').disableExperimentalSEAWarning) {
|
|
|
|
process.on('warning', mustNotCall());
|
|
|
|
} else {
|
|
|
|
expectWarning('ExperimentalWarning',
|
|
|
|
'Single executable application is an experimental feature and ' +
|
|
|
|
'might change at any time');
|
|
|
|
}
|
2023-02-18 02:49:18 +00:00
|
|
|
|
2023-05-04 14:32:35 +00:00
|
|
|
// Should be possible to require core modules that optionally require the
|
|
|
|
// "node:" scheme.
|
2023-02-18 02:49:18 +00:00
|
|
|
const { deepStrictEqual, strictEqual, throws } = require('assert');
|
2023-05-04 14:32:35 +00:00
|
|
|
const { dirname } = require('node:path');
|
|
|
|
|
|
|
|
// Should be possible to require a core module that requires using the "node:"
|
|
|
|
// scheme.
|
|
|
|
{
|
|
|
|
const { test } = require('node:test');
|
|
|
|
strictEqual(typeof test, 'function');
|
|
|
|
}
|
|
|
|
|
|
|
|
// Should not be possible to require a core module without the "node:" scheme if
|
|
|
|
// it requires using the "node:" scheme.
|
|
|
|
throws(() => require('test'), {
|
|
|
|
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
|
|
|
|
});
|
2023-02-18 02:49:18 +00:00
|
|
|
|
|
|
|
deepStrictEqual(process.argv, [process.execPath, process.execPath, '-a', '--b=c', 'd']);
|
|
|
|
|
|
|
|
strictEqual(require.cache, undefined);
|
|
|
|
strictEqual(require.extensions, undefined);
|
|
|
|
strictEqual(require.main, module);
|
|
|
|
strictEqual(require.resolve, undefined);
|
|
|
|
|
|
|
|
strictEqual(__filename, process.execPath);
|
|
|
|
strictEqual(__dirname, dirname(process.execPath));
|
|
|
|
strictEqual(module.exports, exports);
|
|
|
|
|
|
|
|
throws(() => require('./requirable.js'), {
|
|
|
|
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
|
|
|
|
});
|
|
|
|
|
|
|
|
const requirable = createdRequire('./requirable.js');
|
|
|
|
deepStrictEqual(requirable, {
|
|
|
|
hello: 'world',
|
|
|
|
});
|
|
|
|
|
|
|
|
console.log('Hello, world! 😊');
|