Skip to content

Commit

Permalink
Improve unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fasttime committed Dec 30, 2023
1 parent de054c7 commit ccb2ebf
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 70 deletions.
60 changes: 21 additions & 39 deletions test/linting.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

const { ESLINT_KEY, GULP_WARN_KEY } = require('#util');

const { createVinylDirectory, createVinylFile, finished, isEmptyArray } =
const { createVinylDirectory, createVinylFile, finishStream, isEmptyArray } =
require('./test-util');

const { strict: assert } = require('assert');
Expand All @@ -16,7 +16,7 @@ async function testConfig(options)
{
const filePath = 'file.js';
const file = createVinylFile(filePath, 'console.log(\'Hi\');;');
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 2);
Expand Down Expand Up @@ -66,7 +66,7 @@ describe
{ 'no-var': 2, 'strict': [2, 'global'], 'valid-jsdoc': 1 },
},
};
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 1);
Expand Down Expand Up @@ -193,7 +193,7 @@ describe
overrideConfig: { rules: { 'no-trailing-spaces': 2 } },
overrideConfigFile: true,
};
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(isEmptyArray(file.eslint.messages));
assert.equal(file.eslint.errorCount, 0);
Expand Down Expand Up @@ -227,7 +227,7 @@ describe
overrideConfig: { rules: { 'no-trailing-spaces': 2 } },
overrideConfigFile: true,
};
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 1);
Expand Down Expand Up @@ -286,7 +286,7 @@ describe
const stream = gulpESLintNew(options);
stream.write(file1);
stream.write(file2);
await finished(stream.resume().end());
await finishStream(stream.end());
assert.equal(file1.eslint.filePath, file1.path);
assert(Array.isArray(file1.eslint.messages));
assert.equal(file1.eslint.messages.length, 1);
Expand Down Expand Up @@ -323,7 +323,7 @@ describe
configType: 'flat',
overrideConfigFile: true,
};
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint, undefined);
},
);
Expand Down Expand Up @@ -383,11 +383,10 @@ describe
async () =>
{
const file = createVinylFile('ignored.js', '(function () {ignore = abc;}});');
await finished
await finishStream
(
gulpESLintNew
({ [ESLINT_KEY]: ESLint, useEslintrc: false, warnIgnored: true })
.resume()
.end(file),
);
assert.equal(file.eslint.filePath, file.path);
Expand Down Expand Up @@ -425,7 +424,7 @@ describe
reportUnusedDisableDirectives: 'warn',
useEslintrc: false,
};
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 1);
Expand All @@ -448,7 +447,7 @@ describe
async () =>
{
const file = createVinylFile('file.js', '');
await finished
await finishStream
(
gulpESLintNew
(
Expand All @@ -459,7 +458,6 @@ describe
useEslintrc: false,
},
)
.resume()
.end(file),
);
assert.equal(file.eslint.filePath, file.path);
Expand Down Expand Up @@ -535,12 +533,8 @@ describe
async () =>
{
const file = createVinylFile('semi/file.js', '$()');
await finished
(
gulpESLintNew({ [ESLINT_KEY]: ESLint, useEslintrc: true })
.resume()
.end(file),
);
await finishStream
(gulpESLintNew({ [ESLINT_KEY]: ESLint, useEslintrc: true }).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 1);
Expand All @@ -564,12 +558,8 @@ describe
async () =>
{
const file = createVinylFile('semi/file.js', '$()');
await finished
(
gulpESLintNew({ [ESLINT_KEY]: ESLint, useEslintrc: false })
.resume()
.end(file),
);
await finishStream
(gulpESLintNew({ [ESLINT_KEY]: ESLint, useEslintrc: false }).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(isEmptyArray(file.eslint.messages));
},
Expand All @@ -586,7 +576,7 @@ describe
let emittedError;
await assert.rejects
(
finished
finishStream
(
gulpESLintNew
(
Expand Down Expand Up @@ -647,12 +637,7 @@ describe
async () =>
{
const file = createVinylFile('file.js', '$()');
await finished
(
gulpESLintNew('semi/.eslintrc')
.resume()
.end(file),
);
await finishStream(gulpESLintNew('semi/.eslintrc').end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 1);
Expand Down Expand Up @@ -771,10 +756,9 @@ describe
async () =>
{
const file = createVinylDirectory();
await finished
await finishStream
(
gulpESLintNew({ baseConfig: { rules: { 'strict': 2 } }, useEslintrc: false })
.resume()
.end(file),
);
assert.equal(file.eslint, undefined);
Expand All @@ -790,7 +774,7 @@ describe
new VinylFile({ path: resolve('stream.js'), contents: Readable.from([]) });
await assert.rejects
(
finished(gulpESLintNew({ useEslintrc: false }).end(file)),
finishStream(gulpESLintNew({ useEslintrc: false }).end(file)),
{
message:
'gulp-eslint-new doesn\'t support Vinyl files with Stream contents.',
Expand All @@ -812,7 +796,7 @@ describe
{
const file =
createVinylFile('invalid.js', 'a = 01;\nb = 02; // eslint-disable-line');
await finished
await finishStream
(
gulpESLintNew
(
Expand All @@ -823,7 +807,6 @@ describe
useEslintrc: false,
},
)
.resume()
.end(file),
);
assert.equal(file.eslint.filePath, file.path);
Expand All @@ -849,7 +832,7 @@ describe
{
const file =
createVinylFile('invalid.js', 'a = 01;\nb = 02; // eslint-disable-line');
await finished
await finishStream
(
gulpESLintNew
(
Expand All @@ -860,7 +843,6 @@ describe
useEslintrc: false,
},
)
.resume()
.end(file),
);
assert.equal(file.eslint.filePath, file.path);
Expand Down Expand Up @@ -950,7 +932,7 @@ describe
configType: 'flat',
overrideConfigFile: true,
};
await finished(gulpESLintNew(options).resume().end(file));
await finishStream(gulpESLintNew(options).end(file));
assert.equal(file.eslint.filePath, file.path);
assert(Array.isArray(file.eslint.messages));
assert.equal(file.eslint.messages.length, 1);
Expand Down
2 changes: 1 addition & 1 deletion test/organize-options.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ describe
const { eslintOptions, migratedOptions } =
organizeOptions({ overrideConfig: 'foo' });
assert.equal(eslintOptions.overrideConfig, 'foo');
assert.deepEqual(migratedOptions, []);
assert(isEmptyArray(migratedOptions));
},
);

Expand Down
33 changes: 14 additions & 19 deletions test/result.spec.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
'use strict';

const { ESLINT_KEY } = require('#util');
const { createVinylFile, finished, isEmptyArray, noop } = require('./test-util');
const { strict: assert } = require('assert');
const { promises: { realpath } } = require('fs');
const gulpESLintNew = require('gulp-eslint-new');
const { ESLINT_KEY } = require('#util');
const { createVinylFile, finishStream, isEmptyArray, noop } = require('./test-util');
const { strict: assert } = require('assert');
const { promises: { realpath } } = require('fs');
const gulpESLintNew = require('gulp-eslint-new');

describe
(
Expand Down Expand Up @@ -138,7 +138,7 @@ describe
file.eslint = { };
await assert.rejects
(
finished
finishStream
(
gulpESLintNew
.result
Expand All @@ -164,7 +164,7 @@ describe
file.eslint = { };
await assert.rejects
(
finished
finishStream
(
gulpESLintNew
.result
Expand Down Expand Up @@ -221,7 +221,7 @@ describe
let result;
const file = createVinylFile('invalid.js', '#invalid!syntax}');
file.eslint = { };
await finished
await finishStream
(
gulpESLintNew
.result
Expand All @@ -238,7 +238,6 @@ describe
);
},
)
.resume()
.on('end', () => assert(result))
.end(file),
);
Expand All @@ -254,7 +253,7 @@ describe
let cwd;
const file = createVinylFile('invalid.js', '#invalid!syntax}');
file.eslint = { cwd: process.cwd() };
await finished
await finishStream
(
gulpESLintNew
.result
Expand All @@ -264,7 +263,6 @@ describe
cwd = await realpath(result.cwd);
},
)
.resume()
.on('end', () => assert(cwd))
.end(file),
);
Expand Down Expand Up @@ -381,7 +379,7 @@ describe
file.eslint = { };
await assert.rejects
(
finished
finishStream
(
gulpESLintNew
.results
Expand All @@ -407,7 +405,7 @@ describe
file.eslint = { };
await assert.rejects
(
finished
finishStream
(
gulpESLintNew
.results
Expand Down Expand Up @@ -443,7 +441,7 @@ describe
async () =>
{
let results;
await finished
await finishStream
(
gulpESLintNew
.results
Expand All @@ -453,7 +451,6 @@ describe
results = actualResults;
},
)
.resume()
.end(createVinylFile('invalid.js', '#invalid!syntax}')),
);
assert(isEmptyArray(results));
Expand All @@ -468,7 +465,7 @@ describe
let results;
const file = createVinylFile('invalid.js', '#invalid!syntax}');
file.eslint = { };
await finished
await finishStream
(
gulpESLintNew
.results
Expand All @@ -485,7 +482,6 @@ describe
);
},
)
.resume()
.on('end', () => assert(results))
.end(file),
);
Expand All @@ -503,7 +499,7 @@ describe
let cwd;
const file = createVinylFile('invalid.js', '#invalid!syntax}');
file.eslint = { };
await finished
await finishStream
(
gulpESLintNew
.results
Expand All @@ -513,7 +509,6 @@ describe
cwd = await realpath(process.cwd());
},
)
.resume()
.on('end', () => assert(cwd))
.end(file),
);
Expand Down
3 changes: 2 additions & 1 deletion test/test-util.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ exports.createVinylFile =
return file;
};

exports.finished = promisify(finished);
const finishedAsync = promisify(finished);
exports.finishStream = async stream => await finishedAsync(stream.resume());

// In some versions on Node.js, `assert.deepEqual(value, []);` does not throw an error if `value` is
// undefined.
Expand Down
Loading

0 comments on commit ccb2ebf

Please sign in to comment.