test: replace indexOf with includes
Start the transition to Array.prototype.includes() and String.prototype.includes(). This commit refactors most of the comparisons of Array.prototype.indexOf() and String.prototype.indexOf() return values with -1 to the former methods in tests. PR-URL: https://github.com/nodejs/node/pull/12604 Refs: https://github.com/nodejs/node/issues/12586 Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This commit is contained in:
parent
0324ac686c
commit
0142276977
@ -22,14 +22,14 @@ const propertyNames = [];
|
||||
for (const name in test_object) {
|
||||
propertyNames.push(name);
|
||||
}
|
||||
assert.ok(propertyNames.indexOf('echo') >= 0);
|
||||
assert.ok(propertyNames.indexOf('readwriteValue') >= 0);
|
||||
assert.ok(propertyNames.indexOf('readonlyValue') >= 0);
|
||||
assert.ok(propertyNames.indexOf('hiddenValue') < 0);
|
||||
assert.ok(propertyNames.indexOf('readwriteAccessor1') < 0);
|
||||
assert.ok(propertyNames.indexOf('readwriteAccessor2') < 0);
|
||||
assert.ok(propertyNames.indexOf('readonlyAccessor1') < 0);
|
||||
assert.ok(propertyNames.indexOf('readonlyAccessor2') < 0);
|
||||
assert.ok(propertyNames.includes('echo'));
|
||||
assert.ok(propertyNames.includes('readwriteValue'));
|
||||
assert.ok(propertyNames.includes('readonlyValue'));
|
||||
assert.ok(!propertyNames.includes('hiddenValue'));
|
||||
assert.ok(!propertyNames.includes('readwriteAccessor1'));
|
||||
assert.ok(!propertyNames.includes('readwriteAccessor2'));
|
||||
assert.ok(!propertyNames.includes('readonlyAccessor1'));
|
||||
assert.ok(!propertyNames.includes('readonlyAccessor2'));
|
||||
|
||||
// The napi_writable attribute should be ignored for accessors.
|
||||
test_object.readwriteAccessor1 = 1;
|
||||
|
@ -21,14 +21,14 @@ const propertyNames = [];
|
||||
for (const name in test_object) {
|
||||
propertyNames.push(name);
|
||||
}
|
||||
assert.ok(propertyNames.indexOf('echo') >= 0);
|
||||
assert.ok(propertyNames.indexOf('readwriteValue') >= 0);
|
||||
assert.ok(propertyNames.indexOf('readonlyValue') >= 0);
|
||||
assert.ok(propertyNames.indexOf('hiddenValue') < 0);
|
||||
assert.ok(propertyNames.indexOf('readwriteAccessor1') < 0);
|
||||
assert.ok(propertyNames.indexOf('readwriteAccessor2') < 0);
|
||||
assert.ok(propertyNames.indexOf('readonlyAccessor1') < 0);
|
||||
assert.ok(propertyNames.indexOf('readonlyAccessor2') < 0);
|
||||
assert.ok(propertyNames.includes('echo'));
|
||||
assert.ok(propertyNames.includes('readwriteValue'));
|
||||
assert.ok(propertyNames.includes('readonlyValue'));
|
||||
assert.ok(!propertyNames.includes('hiddenValue'));
|
||||
assert.ok(!propertyNames.includes('readwriteAccessor1'));
|
||||
assert.ok(!propertyNames.includes('readwriteAccessor2'));
|
||||
assert.ok(!propertyNames.includes('readonlyAccessor1'));
|
||||
assert.ok(!propertyNames.includes('readonlyAccessor2'));
|
||||
|
||||
// The napi_writable attribute should be ignored for accessors.
|
||||
test_object.readwriteAccessor1 = 1;
|
||||
|
@ -35,7 +35,7 @@ function checkBadPath(err, response) {
|
||||
function expectMainScriptSource(result) {
|
||||
const expected = helper.mainScriptSource();
|
||||
const source = result['scriptSource'];
|
||||
assert(source && (source.indexOf(expected) >= 0),
|
||||
assert(source && (source.includes(expected)),
|
||||
'Script source is wrong: ' + source);
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,6 @@ child.stdout.on('data', function(chunk) {
|
||||
});
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.ok(response.indexOf('HELLO=WORLD') >= 0,
|
||||
assert.ok(response.includes('HELLO=WORLD'),
|
||||
'spawn did not use process.env as default');
|
||||
});
|
||||
|
@ -50,6 +50,6 @@ child.stdout.on('data', function(chunk) {
|
||||
});
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.ok(response.indexOf('HELLO=WORLD') >= 0);
|
||||
assert.ok(response.indexOf('FOO=BAR') >= 0);
|
||||
assert.ok(response.includes('HELLO=WORLD'));
|
||||
assert.ok(response.includes('FOO=BAR'));
|
||||
});
|
||||
|
@ -56,5 +56,5 @@ process.on('exit', function() {
|
||||
console.log('response: ', response);
|
||||
assert.strictEqual(1, success_count);
|
||||
assert.strictEqual(0, error_count);
|
||||
assert.ok(response.indexOf('HELLO=WORLD') >= 0);
|
||||
assert.ok(response.includes('HELLO=WORLD'));
|
||||
});
|
||||
|
@ -52,7 +52,7 @@ function verifyBufOutput(ret) {
|
||||
assert.deepStrictEqual(ret.stderr, msgErrBuf);
|
||||
}
|
||||
|
||||
if (process.argv.indexOf('spawnchild') !== -1) {
|
||||
if (process.argv.includes('spawnchild')) {
|
||||
switch (process.argv[3]) {
|
||||
case '1':
|
||||
ret = spawnSync(process.execPath, args, { stdio: 'inherit' });
|
||||
|
@ -17,7 +17,7 @@ const RAN_UNCAUGHT_EXCEPTION_HANDLER_EXIT_CODE = 42;
|
||||
|
||||
if (process.argv[2] === 'child') {
|
||||
process.on('uncaughtException', common.mustCall(function onUncaught() {
|
||||
if (process.execArgv.indexOf('--abort-on-uncaught-exception') !== -1) {
|
||||
if (process.execArgv.includes('--abort-on-uncaught-exception')) {
|
||||
// When passing --abort-on-uncaught-exception to the child process,
|
||||
// we want to make sure that this handler (the process' uncaughtException
|
||||
// event handler) wasn't called. Unfortunately we can't parse the child
|
||||
|
@ -43,11 +43,11 @@ if (process.argv[2] === 'child') {
|
||||
d.on('error', function(err) {
|
||||
// Swallowing the error on purpose if 'throwInDomainErrHandler' is not
|
||||
// set
|
||||
if (process.argv.indexOf('throwInDomainErrHandler') !== -1) {
|
||||
if (process.argv.includes('throwInDomainErrHandler')) {
|
||||
// If useTryCatch is set, wrap the throw in a try/catch block.
|
||||
// This is to make sure that a caught exception does not trigger
|
||||
// an abort.
|
||||
if (process.argv.indexOf('useTryCatch') !== -1) {
|
||||
if (process.argv.includes('useTryCatch')) {
|
||||
try {
|
||||
throw new Error(domainErrHandlerExMessage);
|
||||
} catch (e) {
|
||||
|
@ -36,7 +36,7 @@ function errExec(script, callback) {
|
||||
assert.ok(stderr.split('\n').length > 2);
|
||||
|
||||
// Assert the script is mentioned in error output.
|
||||
assert.ok(stderr.indexOf(script) >= 0);
|
||||
assert.ok(stderr.includes(script));
|
||||
|
||||
// Proxy the args for more tests.
|
||||
callback(err, stdout, stderr);
|
||||
|
@ -34,66 +34,66 @@ const existingDir2 = path.join(common.fixturesDir, 'keys');
|
||||
|
||||
fs.stat(fn, function(err) {
|
||||
assert.strictEqual(fn, err.path);
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.lstat(fn, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.readlink(fn, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.link(fn, 'foo', function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.link(existingFile, existingFile2, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(0 <= err.message.indexOf(existingFile2));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
assert.ok(err.message.includes(existingFile2));
|
||||
});
|
||||
|
||||
fs.symlink(existingFile, existingFile2, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(0 <= err.message.indexOf(existingFile2));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
assert.ok(err.message.includes(existingFile2));
|
||||
});
|
||||
|
||||
fs.unlink(fn, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.rename(fn, 'foo', function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.rename(existingDir, existingDir2, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(existingDir));
|
||||
assert.ok(0 <= err.message.indexOf(existingDir2));
|
||||
assert.ok(err.message.includes(existingDir));
|
||||
assert.ok(err.message.includes(existingDir2));
|
||||
});
|
||||
|
||||
fs.rmdir(fn, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.mkdir(existingFile, 0o666, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
});
|
||||
|
||||
fs.rmdir(existingFile, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
});
|
||||
|
||||
fs.chmod(fn, 0o666, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.open(fn, 'r', 0o666, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
fs.readFile(fn, function(err) {
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
});
|
||||
|
||||
// Sync
|
||||
@ -106,7 +106,7 @@ try {
|
||||
fs.statSync(fn);
|
||||
} catch (err) {
|
||||
errors.push('stat');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -114,7 +114,7 @@ try {
|
||||
fs.mkdirSync(existingFile, 0o666);
|
||||
} catch (err) {
|
||||
errors.push('mkdir');
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -122,7 +122,7 @@ try {
|
||||
fs.chmodSync(fn, 0o666);
|
||||
} catch (err) {
|
||||
errors.push('chmod');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -130,7 +130,7 @@ try {
|
||||
fs.lstatSync(fn);
|
||||
} catch (err) {
|
||||
errors.push('lstat');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -138,7 +138,7 @@ try {
|
||||
fs.readlinkSync(fn);
|
||||
} catch (err) {
|
||||
errors.push('readlink');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -146,7 +146,7 @@ try {
|
||||
fs.linkSync(fn, 'foo');
|
||||
} catch (err) {
|
||||
errors.push('link');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -154,8 +154,8 @@ try {
|
||||
fs.linkSync(existingFile, existingFile2);
|
||||
} catch (err) {
|
||||
errors.push('link');
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(0 <= err.message.indexOf(existingFile2));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
assert.ok(err.message.includes(existingFile2));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -163,8 +163,8 @@ try {
|
||||
fs.symlinkSync(existingFile, existingFile2);
|
||||
} catch (err) {
|
||||
errors.push('symlink');
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(0 <= err.message.indexOf(existingFile2));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
assert.ok(err.message.includes(existingFile2));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -172,7 +172,7 @@ try {
|
||||
fs.unlinkSync(fn);
|
||||
} catch (err) {
|
||||
errors.push('unlink');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -180,7 +180,7 @@ try {
|
||||
fs.rmdirSync(fn);
|
||||
} catch (err) {
|
||||
errors.push('rmdir');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -188,7 +188,7 @@ try {
|
||||
fs.rmdirSync(existingFile);
|
||||
} catch (err) {
|
||||
errors.push('rmdir');
|
||||
assert.ok(0 <= err.message.indexOf(existingFile));
|
||||
assert.ok(err.message.includes(existingFile));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -196,7 +196,7 @@ try {
|
||||
fs.openSync(fn, 'r');
|
||||
} catch (err) {
|
||||
errors.push('opens');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -204,7 +204,7 @@ try {
|
||||
fs.renameSync(fn, 'foo');
|
||||
} catch (err) {
|
||||
errors.push('rename');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -212,8 +212,8 @@ try {
|
||||
fs.renameSync(existingDir, existingDir2);
|
||||
} catch (err) {
|
||||
errors.push('rename');
|
||||
assert.ok(0 <= err.message.indexOf(existingDir));
|
||||
assert.ok(0 <= err.message.indexOf(existingDir2));
|
||||
assert.ok(err.message.includes(existingDir));
|
||||
assert.ok(err.message.includes(existingDir2));
|
||||
}
|
||||
|
||||
try {
|
||||
@ -221,7 +221,7 @@ try {
|
||||
fs.readdirSync(fn);
|
||||
} catch (err) {
|
||||
errors.push('readdir');
|
||||
assert.ok(0 <= err.message.indexOf(fn));
|
||||
assert.ok(err.message.includes(fn));
|
||||
}
|
||||
|
||||
process.on('exit', function() {
|
||||
|
@ -47,7 +47,7 @@ net.createServer(function(c) {
|
||||
path: '/'
|
||||
}).on('error', function(e) {
|
||||
console.log('got error from client');
|
||||
assert.ok(e.message.indexOf('Parse Error') >= 0);
|
||||
assert.ok(e.message.includes('Parse Error'));
|
||||
assert.strictEqual(e.code, 'HPE_INVALID_CONSTANT');
|
||||
parseErrors++;
|
||||
}).end();
|
||||
|
@ -49,7 +49,7 @@ const server = net.createServer(function(socket) {
|
||||
socket.on('data', function(chunk) {
|
||||
postBody += chunk;
|
||||
|
||||
if (postBody.indexOf('\r\n') > -1) {
|
||||
if (postBody.includes('\r\n')) {
|
||||
socket.write(fullResponse);
|
||||
// omg, I wrote the response twice, what a terrible HTTP server I am.
|
||||
socket.end(fullResponse);
|
||||
|
@ -94,7 +94,7 @@ function checkFiles() {
|
||||
|
||||
for (let i = 0; i < total; i++) {
|
||||
const fn = i + '.jpg';
|
||||
assert.ok(files.indexOf(fn) >= 0, "couldn't find '" + fn + "'");
|
||||
assert.ok(files.includes(fn), "couldn't find '" + fn + "'");
|
||||
const stat = fs.statSync(common.tmpDir + '/' + fn);
|
||||
assert.strictEqual(image.length, stat.size,
|
||||
"size doesn't match on '" + fn +
|
||||
|
@ -130,11 +130,11 @@ function makeReq(path, port, error, host, ca) {
|
||||
options.agent = agent0;
|
||||
} else {
|
||||
if (!Array.isArray(ca)) ca = [ca];
|
||||
if (-1 !== ca.indexOf(ca1) && -1 !== ca.indexOf(ca2)) {
|
||||
if (ca.includes(ca1) && ca.includes(ca2)) {
|
||||
options.agent = agent3;
|
||||
} else if (-1 !== ca.indexOf(ca1)) {
|
||||
} else if (ca.includes(ca1)) {
|
||||
options.agent = agent1;
|
||||
} else if (-1 !== ca.indexOf(ca2)) {
|
||||
} else if (ca.includes(ca2)) {
|
||||
options.agent = agent2;
|
||||
} else {
|
||||
options.agent = agent0;
|
||||
|
@ -34,7 +34,7 @@ if (enablei18n === undefined) {
|
||||
// Else, returns false
|
||||
function haveLocale(loc) {
|
||||
const locs = process.config.variables.icu_locales.split(',');
|
||||
return locs.indexOf(loc) !== -1;
|
||||
return locs.includes(loc);
|
||||
}
|
||||
|
||||
// Always run these. They should always pass, even if the locale
|
||||
|
@ -50,7 +50,7 @@ function test() {
|
||||
let json = '';
|
||||
parent.stdout.on('data', function(c) {
|
||||
json += c.toString();
|
||||
if (json.indexOf('\n') !== -1) next();
|
||||
if (json.includes('\n')) next();
|
||||
});
|
||||
function next() {
|
||||
console.error('output from parent = %s', json);
|
||||
|
@ -50,7 +50,7 @@ function test() {
|
||||
let json = '';
|
||||
parent.stdout.on('data', function(c) {
|
||||
json += c.toString();
|
||||
if (json.indexOf('\n') !== -1) next();
|
||||
if (json.includes('\n')) next();
|
||||
});
|
||||
function next() {
|
||||
console.error('output from parent = %s', json);
|
||||
|
@ -39,8 +39,8 @@ if (common.isWindows) {
|
||||
|
||||
mod._initPaths();
|
||||
|
||||
assert.ok(mod.globalPaths.indexOf(partA) !== -1);
|
||||
assert.ok(mod.globalPaths.indexOf(partB) !== -1);
|
||||
assert.ok(mod.globalPaths.indexOf(partC) === -1);
|
||||
assert.ok(mod.globalPaths.includes(partA));
|
||||
assert.ok(mod.globalPaths.includes(partB));
|
||||
assert.ok(!mod.globalPaths.includes(partC));
|
||||
|
||||
assert.ok(Array.isArray(mod.globalPaths));
|
||||
|
@ -30,7 +30,7 @@ const server2 = net.createServer(function(socket) {
|
||||
});
|
||||
server1.listen(0, function() {
|
||||
server2.on('error', function(error) {
|
||||
assert.strictEqual(true, error.message.indexOf('EADDRINUSE') >= 0);
|
||||
assert.strictEqual(true, error.message.includes('EADDRINUSE'));
|
||||
server1.close();
|
||||
});
|
||||
server2.listen(this.address().port);
|
||||
|
@ -33,15 +33,15 @@ function checkAll() {
|
||||
const handles = process._getActiveHandles();
|
||||
|
||||
clients.forEach(function(item) {
|
||||
assert.ok(handles.indexOf(item) > -1);
|
||||
assert.ok(handles.includes(item));
|
||||
item.destroy();
|
||||
});
|
||||
|
||||
connections.forEach(function(item) {
|
||||
assert.ok(handles.indexOf(item) > -1);
|
||||
assert.ok(handles.includes(item));
|
||||
item.end();
|
||||
});
|
||||
|
||||
assert.ok(handles.indexOf(server) > -1);
|
||||
assert.ok(handles.includes(server));
|
||||
server.close();
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ function error_test() {
|
||||
client_unix.expect :
|
||||
JSON.stringify(client_unix.expect)));
|
||||
|
||||
if (read_buffer.indexOf(prompt_unix) !== -1) {
|
||||
if (read_buffer.includes(prompt_unix)) {
|
||||
// if it's an exact match, then don't do the regexp
|
||||
if (read_buffer !== client_unix.expect) {
|
||||
let expect = client_unix.expect;
|
||||
@ -109,7 +109,7 @@ function error_test() {
|
||||
tcp_test();
|
||||
}
|
||||
|
||||
} else if (read_buffer.indexOf(prompt_multiline) !== -1) {
|
||||
} else if (read_buffer.includes(prompt_multiline)) {
|
||||
// Check that you meant to send a multiline test
|
||||
assert.strictEqual(prompt_multiline, client_unix.expect);
|
||||
read_buffer = '';
|
||||
@ -454,7 +454,7 @@ function tcp_test() {
|
||||
read_buffer += data.toString('ascii', 0, data.length);
|
||||
console.error('TCP data: ' + JSON.stringify(read_buffer) +
|
||||
', expecting ' + JSON.stringify(client_tcp.expect));
|
||||
if (read_buffer.indexOf(prompt_tcp) !== -1) {
|
||||
if (read_buffer.includes(prompt_tcp)) {
|
||||
assert.strictEqual(client_tcp.expect, read_buffer);
|
||||
console.error('match');
|
||||
read_buffer = '';
|
||||
@ -524,7 +524,7 @@ function unix_test() {
|
||||
read_buffer += data.toString('ascii', 0, data.length);
|
||||
console.error('Unix data: ' + JSON.stringify(read_buffer) +
|
||||
', expecting ' + JSON.stringify(client_unix.expect));
|
||||
if (read_buffer.indexOf(prompt_unix) !== -1) {
|
||||
if (read_buffer.includes(prompt_unix)) {
|
||||
assert.strictEqual(client_unix.expect, read_buffer);
|
||||
console.error('match');
|
||||
read_buffer = '';
|
||||
|
@ -43,7 +43,7 @@ util.inherits(TestStream, stream.Transform);
|
||||
TestStream.prototype._transform = function(chunk, encoding, done) {
|
||||
if (!passed) {
|
||||
// Char 'a' only exists in the last write
|
||||
passed = chunk.toString().indexOf('a') >= 0;
|
||||
passed = chunk.toString().includes('a');
|
||||
}
|
||||
done();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user