diff --git a/test/parallel/test-assert-builtins-not-read-from-filesystem.js b/test/parallel/test-assert-builtins-not-read-from-filesystem.js new file mode 100644 index 00000000000000..154dc3b33ef87a --- /dev/null +++ b/test/parallel/test-assert-builtins-not-read-from-filesystem.js @@ -0,0 +1,44 @@ +// Flags: --expose-internals + +'use strict'; + +require('../common'); + +const assert = require('assert'); +const EventEmitter = require('events'); +const { errorCache } = require('internal/assert'); +const { writeFileSync, unlinkSync } = require('fs'); + +// Do not read filesystem for error messages in builtin modules. +{ + const e = new EventEmitter(); + + e.on('hello', assert); + + let threw = false; + try { + e.emit('hello', false); + } catch (err) { + const frames = err.stack.split('\n'); + const [, filename, line, column] = frames[1].match(/\((.+):(\d+):(\d+)\)/); + // Reset the cache to check again + const size = errorCache.size; + errorCache.delete(`${filename}${line - 1}${column - 1}`); + assert.strictEqual(errorCache.size, size - 1); + const data = `${'\n'.repeat(line - 1)}${' '.repeat(column - 1)}` + + 'ok(failed(badly));'; + try { + writeFileSync(filename, data); + assert.throws( + () => e.emit('hello', false), + { + message: 'false == true' + } + ); + threw = true; + } finally { + unlinkSync(filename); + } + } + assert(threw); +} diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 56489b9e6e8b1c..12ae82475726a0 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -19,17 +19,12 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -// Flags: --expose-internals - 'use strict'; /* eslint-disable node-core/prefer-common-expectserror */ const common = require('../common'); const assert = require('assert'); -const EventEmitter = require('events'); -const { errorCache } = require('internal/assert'); -const { writeFileSync, unlinkSync } = require('fs'); const { inspect } = require('util'); const a = assert; @@ -793,40 +788,6 @@ common.expectsError( } ); -// Do not try to check Node.js modules. -{ - const e = new EventEmitter(); - - e.on('hello', assert); - - let threw = false; - try { - e.emit('hello', false); - } catch (err) { - const frames = err.stack.split('\n'); - const [, filename, line, column] = frames[1].match(/\((.+):(\d+):(\d+)\)/); - // Reset the cache to check again - const size = errorCache.size; - errorCache.delete(`${filename}${line - 1}${column - 1}`); - assert.strictEqual(errorCache.size, size - 1); - const data = `${'\n'.repeat(line - 1)}${' '.repeat(column - 1)}` + - 'ok(failed(badly));'; - try { - writeFileSync(filename, data); - assert.throws( - () => e.emit('hello', false), - { - message: 'false == true' - } - ); - threw = true; - } finally { - unlinkSync(filename); - } - } - assert(threw); -} - common.expectsError( // eslint-disable-next-line no-restricted-syntax () => assert.throws(() => {}, 'Error message', 'message'),