test: improve assert test hygiene
Do not pollute the source tree for the test. Instead of writing to the source tree, spawn a process with the temp dir as cwd and write the file there. PR-URL: https://github.com/nodejs/node/pull/20861 Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
parent
6e1324e4cf
commit
5624a6f8a7
@ -1,16 +1,25 @@
|
|||||||
// Flags: --expose-internals
|
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
// Do not read filesystem when creating AssertionError messages for code in
|
||||||
|
// builtin modules.
|
||||||
|
|
||||||
require('../common');
|
require('../common');
|
||||||
|
|
||||||
const assert = require('assert');
|
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.
|
if (process.argv[2] !== 'child') {
|
||||||
{
|
const tmpdir = require('../common/tmpdir');
|
||||||
|
tmpdir.refresh();
|
||||||
|
const { spawnSync } = require('child_process');
|
||||||
|
const { output, status, error } =
|
||||||
|
spawnSync(process.execPath,
|
||||||
|
['--expose-internals', process.argv[1], 'child'],
|
||||||
|
{ cwd: tmpdir.path, env: process.env });
|
||||||
|
assert.ifError(error);
|
||||||
|
assert.strictEqual(status, 0, `Exit code: ${status}\n${output}`);
|
||||||
|
} else {
|
||||||
|
const EventEmitter = require('events');
|
||||||
|
const { errorCache } = require('internal/assert');
|
||||||
|
const { writeFileSync } = require('fs');
|
||||||
const e = new EventEmitter();
|
const e = new EventEmitter();
|
||||||
|
|
||||||
e.on('hello', assert);
|
e.on('hello', assert);
|
||||||
@ -27,18 +36,16 @@ const { writeFileSync, unlinkSync } = require('fs');
|
|||||||
assert.strictEqual(errorCache.size, size - 1);
|
assert.strictEqual(errorCache.size, size - 1);
|
||||||
const data = `${'\n'.repeat(line - 1)}${' '.repeat(column - 1)}` +
|
const data = `${'\n'.repeat(line - 1)}${' '.repeat(column - 1)}` +
|
||||||
'ok(failed(badly));';
|
'ok(failed(badly));';
|
||||||
try {
|
|
||||||
writeFileSync(filename, data);
|
writeFileSync(filename, data);
|
||||||
assert.throws(
|
assert.throws(
|
||||||
() => e.emit('hello', false),
|
() => e.emit('hello', false),
|
||||||
{
|
{
|
||||||
message: 'false == true'
|
message: 'false == true'
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
threw = true;
|
threw = true;
|
||||||
} finally {
|
|
||||||
unlinkSync(filename);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
assert(threw);
|
assert(threw);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user