Skip to content

Commit 4b35ee1

Browse files
committed
test: add test for ERR_AMBIGUOUS_MODULE_SYNTAX
1 parent 50a3d33 commit 4b35ee1

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
const assert = require('assert');
5+
const { spawnSync } = require('child_process');
6+
const fixtures = require('../common/fixtures');
7+
8+
// Skip if ESM is not supported in this environment
9+
common.skipIfESMUnsupported(__filename);
10+
11+
// Fixture that mixes CJS + ESM
12+
const entry = fixtures.path('es-modules', 'ambiguous-mixed-syntax.js');
13+
14+
const result = spawnSync(process.execPath, [entry], {
15+
encoding: 'utf8'
16+
});
17+
18+
// Node should exit with an error
19+
assert.notStrictEqual(result.status, 0);
20+
21+
// Error code must be present
22+
assert.ok(
23+
/ERR_AMBIGUOUS_MODULE_SYNTAX/.test(result.stderr),
24+
`stderr did not contain ERR_AMBIGUOUS_MODULE_SYNTAX:\n${result.stderr}`
25+
);
26+
27+
// Your new explanatory message should appear
28+
assert.ok(
29+
/mixes CommonJS/.test(result.stderr),
30+
`stderr did not contain expected message:\n${result.stderr}`
31+
);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// This file intentionally mixes CommonJS and ES Module syntax
2+
// to trigger ERR_AMBIGUOUS_MODULE_SYNTAX.
3+
4+
// CommonJS
5+
const fs = require('fs');
6+
7+
// ES Modules
8+
export const value = 123;

0 commit comments

Comments
 (0)