Skip to content

Commit

Permalink
test: improve assert test hygiene
Browse files Browse the repository at this point in the history
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: #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>
  • Loading branch information
Trott authored and MylesBorins committed May 29, 2018
1 parent 88f9a39 commit 0112357
Showing 1 changed file with 27 additions and 20 deletions.
47 changes: 27 additions & 20 deletions test/parallel/test-assert-builtins-not-read-from-filesystem.js
@@ -1,16 +1,25 @@
// Flags: --expose-internals

'use strict';

require('../common');
// Do not read filesystem when creating AssertionError messages for code in
// builtin modules.

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.
{
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();

e.on('hello', assert);
Expand All @@ -27,18 +36,16 @@ const { writeFileSync, unlinkSync } = require('fs');
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);
}

writeFileSync(filename, data);
assert.throws(
() => e.emit('hello', false),
{
message: 'false == true'
}
);
threw = true;

}
assert(threw);
}

0 comments on commit 0112357

Please sign in to comment.