summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/es-module/test-esm-cjs-main.js27
-rw-r--r--test/fixtures/es-modules/cjs.js5
2 files changed, 29 insertions, 3 deletions
diff --git a/test/es-module/test-esm-cjs-main.js b/test/es-module/test-esm-cjs-main.js
index ed6730aec1..7a06572a38 100644
--- a/test/es-module/test-esm-cjs-main.js
+++ b/test/es-module/test-esm-cjs-main.js
@@ -1,6 +1,27 @@
-// Flags: --experimental-modules
'use strict';
+
require('../common');
+const { spawn } = require('child_process');
const assert = require('assert');
-exports.asdf = 'asdf';
-assert.strictEqual(require.main.exports.asdf, 'asdf');
+const path = require('path');
+
+const entry = path.resolve(__dirname, '../fixtures/es-modules/cjs.js');
+
+const child = spawn(process.execPath, ['--experimental-modules', entry]);
+let experimentalWarning = false;
+let validatedExecution = false;
+child.stderr.on('data', (data) => {
+ if (!experimentalWarning) {
+ experimentalWarning = true;
+ return;
+ }
+ throw new Error(data.toString());
+});
+child.stdout.on('data', (data) => {
+ assert.strictEqual(data.toString(), 'executed\n');
+ validatedExecution = true;
+});
+child.on('close', (code, stdout) => {
+ assert.strictEqual(validatedExecution, true);
+ assert.strictEqual(code, 0);
+});
diff --git a/test/fixtures/es-modules/cjs.js b/test/fixtures/es-modules/cjs.js
new file mode 100644
index 0000000000..3a09c83abf
--- /dev/null
+++ b/test/fixtures/es-modules/cjs.js
@@ -0,0 +1,5 @@
+'use strict';
+
+// test we can use commonjs require
+require('path');
+console.log('executed');