forked from nodejs/node
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: isolate unusual assert test in its own file
test-assert.js contains a test that writes to the source tree, requires an internal module, and depends on modules not needed by the plethora of other test cases in the file. Move it to its own file so that there are not side effects in test-assert.js and so that it can be refactored to not write to the source tree. PR-URL: nodejs#20861 Reviewed-By: Sakthipriyan Vairamani <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]>
- Loading branch information
Showing
2 changed files
with
44 additions
and
39 deletions.
There are no files selected for viewing
44 changes: 44 additions & 0 deletions
44
test/parallel/test-assert-builtins-not-read-from-filesystem.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters