forked from Distributive-Network/PythonMonkey
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogram-module.simple
More file actions
36 lines (29 loc) · 1.14 KB
/
program-module.simple
File metadata and controls
36 lines (29 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* @file program-module.simple
* Test subtle details about program modules scopes
* @author Wes Garland, wes@distributive.network
* @date July 2023
*/
'use strict';
var failures = 0;
function check(message, testResult)
{
const facility = testResult ? 'log' : 'error';
console[facility](message + ':', testResult ? 'PASS' : 'FAIL');
if (!testResult)
failures++;
}
check('require.main is an object', typeof require.main === 'object');
check('require.main is the current module', require.main === module);
check('require is the global require', require === globalThis.require);
check('exports is the global exports', exports === globalThis.exports);
check('module is the global module', module === globalThis.module);
// eslint-disable-next-line no-global-assign
module = {};
check('free module symbol is global symbol', module === globalThis.module);
check('arguments.length is ' + arguments.length, ...arguments);
if (failures)
console.log(`${failures} sub-tests failing`);
else
console.log('all sub-tests pass', typeof failures);
python.exit(failures);