Mocha to jest migration for eslint packages (#10716)
* migrated mocha to jest * migrated mocha to jest - 2 * migrated mocha to jest - removed preversion hook from script * migrated mocha to jest - 3 * migrated mocha to jest - 4 * cleanup * review * review
This commit is contained in:
parent
bcd181f051
commit
f087cf842f
@ -14,7 +14,6 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/babel/babel-eslint",
|
"homepage": "https://github.com/babel/babel-eslint",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "cd test && mocha specs && cd -",
|
|
||||||
"changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'"
|
"changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -50,7 +49,6 @@
|
|||||||
"@babel/preset-react": "^7.0.0",
|
"@babel/preset-react": "^7.0.0",
|
||||||
"dedent": "^0.7.0",
|
"dedent": "^0.7.0",
|
||||||
"eslint": "^6.0.1",
|
"eslint": "^6.0.1",
|
||||||
"espree": "^6.0.0",
|
"espree": "^6.0.0"
|
||||||
"mocha": "^6.1.4"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,19 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const assert = require("assert");
|
const assert = require("assert");
|
||||||
const babelEslint = require("../..");
|
const path = require("path");
|
||||||
|
const babelEslint = require("../");
|
||||||
const espree = require("espree");
|
const espree = require("espree");
|
||||||
const escope = require("eslint-scope");
|
const escope = require("eslint-scope");
|
||||||
const unpad = require("dedent");
|
const unpad = require("dedent");
|
||||||
const assertImplementsAST = require("../helpers/assert-implements-ast");
|
const assertImplementsAST = require("./helpers/assert-implements-ast");
|
||||||
|
|
||||||
|
const babelOptions = {
|
||||||
|
configFile: path.resolve(
|
||||||
|
__dirname,
|
||||||
|
"./fixtures/config/babel.config.js"
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
function parseAndAssertSame(code) {
|
function parseAndAssertSame(code) {
|
||||||
code = unpad(code);
|
code = unpad(code);
|
||||||
@ -30,6 +38,7 @@ function parseAndAssertSame(code) {
|
|||||||
const babylonAST = babelEslint.parseForESLint(code, {
|
const babylonAST = babelEslint.parseForESLint(code, {
|
||||||
eslintVisitorKeys: true,
|
eslintVisitorKeys: true,
|
||||||
eslintScopeManager: true,
|
eslintScopeManager: true,
|
||||||
|
babelOptions,
|
||||||
}).ast;
|
}).ast;
|
||||||
assertImplementsAST(esAST, babylonAST);
|
assertImplementsAST(esAST, babylonAST);
|
||||||
}
|
}
|
||||||
@ -40,15 +49,11 @@ describe("babylon-to-espree", () => {
|
|||||||
const esAST = babelEslint.parseForESLint("`test`", {
|
const esAST = babelEslint.parseForESLint("`test`", {
|
||||||
eslintScopeManager: true,
|
eslintScopeManager: true,
|
||||||
eslintVisitorKeys: true,
|
eslintVisitorKeys: true,
|
||||||
|
babelOptions,
|
||||||
}).ast;
|
}).ast;
|
||||||
|
expect(() => {
|
||||||
assert.doesNotThrow(
|
escope.analyze(esAST)
|
||||||
() => {
|
}).not.toThrow(new TypeError('Should allow no options argument.'));
|
||||||
escope.analyze(esAST);
|
|
||||||
},
|
|
||||||
TypeError,
|
|
||||||
"Should allow no options argument."
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -243,6 +248,7 @@ describe("babylon-to-espree", () => {
|
|||||||
const babylonAST = babelEslint.parseForESLint(code, {
|
const babylonAST = babelEslint.parseForESLint(code, {
|
||||||
eslintVisitorKeys: true,
|
eslintVisitorKeys: true,
|
||||||
eslintScopeManager: true,
|
eslintScopeManager: true,
|
||||||
|
babelOptions,
|
||||||
}).ast;
|
}).ast;
|
||||||
assert.strictEqual(babylonAST.tokens[1].type, "Punctuator");
|
assert.strictEqual(babylonAST.tokens[1].type, "Punctuator");
|
||||||
});
|
});
|
||||||
@ -253,6 +259,7 @@ describe("babylon-to-espree", () => {
|
|||||||
const babylonAST = babelEslint.parseForESLint(code, {
|
const babylonAST = babelEslint.parseForESLint(code, {
|
||||||
eslintVisitorKeys: true,
|
eslintVisitorKeys: true,
|
||||||
eslintScopeManager: true,
|
eslintScopeManager: true,
|
||||||
|
babelOptions,
|
||||||
}).ast;
|
}).ast;
|
||||||
assert.strictEqual(babylonAST.tokens[1].type, "Punctuator");
|
assert.strictEqual(babylonAST.tokens[1].type, "Punctuator");
|
||||||
});
|
});
|
||||||
@ -263,6 +270,7 @@ describe("babylon-to-espree", () => {
|
|||||||
const babylonAST = babelEslint.parseForESLint(code, {
|
const babylonAST = babelEslint.parseForESLint(code, {
|
||||||
eslintVisitorKeys: true,
|
eslintVisitorKeys: true,
|
||||||
eslintScopeManager: true,
|
eslintScopeManager: true,
|
||||||
|
babelOptions,
|
||||||
}).ast;
|
}).ast;
|
||||||
assert.strictEqual(babylonAST.tokens[1].type, "Punctuator");
|
assert.strictEqual(babylonAST.tokens[1].type, "Punctuator");
|
||||||
});
|
});
|
||||||
@ -273,6 +281,7 @@ describe("babylon-to-espree", () => {
|
|||||||
const babylonAST = babelEslint.parseForESLint(code, {
|
const babylonAST = babelEslint.parseForESLint(code, {
|
||||||
eslintVisitorKeys: true,
|
eslintVisitorKeys: true,
|
||||||
eslintScopeManager: true,
|
eslintScopeManager: true,
|
||||||
|
babelOptions,
|
||||||
}).ast;
|
}).ast;
|
||||||
assert.strictEqual(babylonAST.tokens[3].type, "Punctuator");
|
assert.strictEqual(babylonAST.tokens[3].type, "Punctuator");
|
||||||
assert.strictEqual(babylonAST.tokens[3].value, "#");
|
assert.strictEqual(babylonAST.tokens[3].value, "#");
|
||||||
@ -1,16 +1,15 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const assert = require("assert");
|
|
||||||
const eslint = require("eslint");
|
const eslint = require("eslint");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
const parser = require("../..");
|
const parser = require("../");
|
||||||
|
|
||||||
eslint.linter.defineParser("current-babel-eslint", parser);
|
eslint.linter.defineParser("current-babel-eslint", parser);
|
||||||
|
|
||||||
const paths = {
|
const paths = {
|
||||||
fixtures: path.join(__dirname, "..", "fixtures", "rules"),
|
fixtures: path.join(__dirname, "fixtures", "rules"),
|
||||||
};
|
};
|
||||||
|
|
||||||
const encoding = "utf8";
|
const encoding = "utf8";
|
||||||
@ -71,7 +70,7 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
expect(report[0].ruleId).toBe(ruleId);
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -95,7 +94,7 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(!report.length);
|
expect(report.length).toBe(0);
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -111,7 +110,7 @@ function strictSuite() {
|
|||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
[0, 1].forEach(i => {
|
[0, 1].forEach(i => {
|
||||||
assert(report[i].ruleId === ruleId);
|
expect(report[0].ruleId).toBe(ruleId);
|
||||||
});
|
});
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
@ -127,13 +126,12 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
expect(report[0].ruleId).toBe(ruleId);
|
||||||
|
|
||||||
// This is to make sure the test fails prior to adapting Babel AST
|
// This is to make sure the test fails prior to adapting Babel AST
|
||||||
// directive representation to ESLint format. Otherwise it reports an
|
// directive representation to ESLint format. Otherwise it reports an
|
||||||
// error for missing global directive that masquerades as the expected
|
// error for missing global directive that masquerades as the expected
|
||||||
// result of the previous assertion.
|
// result of the previous assertion.
|
||||||
assert(report[0].nodeType !== "Program");
|
expect(report[0].nodeType).not.toBe("Program");
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -148,7 +146,7 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
expect(report[0].ruleId).toBe(ruleId);
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -171,7 +169,7 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(!report.length);
|
expect(report.length).toBe(0);
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -187,7 +185,7 @@ function strictSuite() {
|
|||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
[0, 1].forEach(i => {
|
[0, 1].forEach(i => {
|
||||||
assert(report[i].ruleId === ruleId);
|
expect(report[i].ruleId).toBe(ruleId);
|
||||||
});
|
});
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
@ -203,7 +201,7 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
expect(report[0].ruleId).toBe(ruleId);
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -218,8 +216,8 @@ function strictSuite() {
|
|||||||
},
|
},
|
||||||
(err, report) => {
|
(err, report) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
assert(report[0].ruleId === ruleId);
|
expect(report[0].ruleId).toBe(ruleId);
|
||||||
assert(report[0].nodeType.indexOf("Function") === -1);
|
expect(report[0].nodeType.indexOf("Function")).toBe(-1);
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -231,10 +229,10 @@ function strictSuite() {
|
|||||||
describe("https://github.com/babel/babel-eslint/issues/558", () => {
|
describe("https://github.com/babel/babel-eslint/issues/558", () => {
|
||||||
it("doesn't crash with eslint-plugin-import", () => {
|
it("doesn't crash with eslint-plugin-import", () => {
|
||||||
const engine = new eslint.CLIEngine({ ignore: false });
|
const engine = new eslint.CLIEngine({ ignore: false });
|
||||||
engine.executeOnFiles([
|
const files = ['a.js', 'b.js', 'c.js'];
|
||||||
"fixtures/eslint-plugin-import/a.js",
|
let fileWithPath = files.map(file =>
|
||||||
"fixtures/eslint-plugin-import/b.js",
|
path.resolve(__dirname, `./fixtures/eslint-plugin-import/${file}`));
|
||||||
"fixtures/eslint-plugin-import/c.js",
|
engine.executeOnFiles(fileWithPath);
|
||||||
]);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4,7 +4,7 @@ const eslint = require("eslint");
|
|||||||
const path = require("path");
|
const path = require("path");
|
||||||
const unpad = require("dedent");
|
const unpad = require("dedent");
|
||||||
|
|
||||||
const parser = require("../..");
|
const parser = require("../");
|
||||||
|
|
||||||
function verifyAndAssertMessagesWithSpecificESLint(
|
function verifyAndAssertMessagesWithSpecificESLint(
|
||||||
code,
|
code,
|
||||||
@ -26,7 +26,13 @@ function verifyAndAssertMessagesWithSpecificESLint(
|
|||||||
ecmaFeatures: {
|
ecmaFeatures: {
|
||||||
globalReturn: true,
|
globalReturn: true,
|
||||||
},
|
},
|
||||||
},
|
babelOptions: {
|
||||||
|
configFile: path.resolve(
|
||||||
|
__dirname,
|
||||||
|
"./fixtures/config/babel.config.js"
|
||||||
|
),
|
||||||
|
},
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (overrideConfig) {
|
if (overrideConfig) {
|
||||||
@ -1162,7 +1168,7 @@ describe("verify", () => {
|
|||||||
babelOptions: {
|
babelOptions: {
|
||||||
configFile: path.resolve(
|
configFile: path.resolve(
|
||||||
__dirname,
|
__dirname,
|
||||||
"../fixtures/config/babel.config.decorators-legacy.js"
|
"./fixtures/config/babel.config.decorators-legacy.js"
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -14,12 +14,8 @@
|
|||||||
"url": "https://github.com/nicolo-ribaudo"
|
"url": "https://github.com/nicolo-ribaudo"
|
||||||
},
|
},
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"scripts": {
|
|
||||||
"test": "mocha tests --recursive"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^5.9.0",
|
"eslint": "^5.9.0"
|
||||||
"mocha": "^5.2.0"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.0.0"
|
"node": ">=8.0.0"
|
||||||
|
|||||||
@ -3,9 +3,6 @@
|
|||||||
"version": "5.3.0",
|
"version": "5.3.0",
|
||||||
"description": "an eslint rule plugin companion to babel-eslint",
|
"description": "an eslint rule plugin companion to babel-eslint",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
|
||||||
"test": "mocha ./tests/rules/*.js"
|
|
||||||
},
|
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/babel/eslint-plugin-babel.git"
|
"url": "git+https://github.com/babel/eslint-plugin-babel.git"
|
||||||
@ -36,7 +33,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^8.2.2",
|
"babel-eslint": "^8.2.2",
|
||||||
"eslint": "^4.19.1",
|
"eslint": "^4.19.1",
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0"
|
||||||
"mocha": "^5.2.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
const rule = require("../../rules/camelcase"),
|
const rule = require("../../rules/camelcase"),
|
||||||
RuleTester = require("../RuleTester");
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Tests
|
// Tests
|
||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var rule = require('../../rules/new-cap'),
|
var rule = require('../../rules/new-cap'),
|
||||||
RuleTester = require('../RuleTester');
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
var ruleTester = new RuleTester();
|
var ruleTester = new RuleTester();
|
||||||
ruleTester.run('babel/new-cap', rule, {
|
ruleTester.run('babel/new-cap', rule, {
|
||||||
@ -10,8 +10,8 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
const cloneDeep = require("lodash.clonedeep");
|
const cloneDeep = require("lodash.clonedeep");
|
||||||
const rule = require("../../rules/no-invalid-this");
|
const rule = require("../../rules/no-invalid-this"),
|
||||||
const RuleTester = require("../RuleTester");
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Helpers
|
// Helpers
|
||||||
@ -10,7 +10,7 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
const rule = require("../../rules/no-unused-expressions"),
|
const rule = require("../../rules/no-unused-expressions"),
|
||||||
RuleTester = require("../RuleTester");
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Tests
|
// Tests
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var rule = require('../../rules/object-curly-spacing'),
|
var rule = require('../../rules/object-curly-spacing'),
|
||||||
RuleTester = require('../RuleTester');
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
var ruleTester = new RuleTester();
|
var ruleTester = new RuleTester();
|
||||||
ruleTester.run('babel/object-curly-spacing', rule, {
|
ruleTester.run('babel/object-curly-spacing', rule, {
|
||||||
@ -1,5 +1,5 @@
|
|||||||
var rule = require('../../rules/quotes'),
|
var rule = require('../../rules/quotes'),
|
||||||
RuleTester = require('../RuleTester');
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
var ruleTester = new RuleTester();
|
var ruleTester = new RuleTester();
|
||||||
ruleTester.run('babel/quotes', rule, {
|
ruleTester.run('babel/quotes', rule, {
|
||||||
@ -11,7 +11,7 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
const rule = require("../../rules/semi"),
|
const rule = require("../../rules/semi"),
|
||||||
RuleTester = require("../RuleTester");
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
const ruleTester = new RuleTester();
|
const ruleTester = new RuleTester();
|
||||||
|
|
||||||
@ -10,7 +10,7 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
const rule = require("../../rules/valid-typeof"),
|
const rule = require("../../rules/valid-typeof"),
|
||||||
RuleTester = require("../RuleTester");
|
RuleTester = require("../helpers/RuleTester");
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Tests
|
// Tests
|
||||||
@ -95,9 +95,11 @@
|
|||||||
"packages/*/src/**/*.mjs",
|
"packages/*/src/**/*.mjs",
|
||||||
"packages/*/src/**/*.js",
|
"packages/*/src/**/*.js",
|
||||||
"codemods/*/src/**/*.mjs",
|
"codemods/*/src/**/*.mjs",
|
||||||
"codemods/*/src/**/*.js"
|
"codemods/*/src/**/*.js",
|
||||||
|
"eslint/*/src/**/*.mjs",
|
||||||
|
"eslint/*/src/**/*.js"
|
||||||
],
|
],
|
||||||
"testRegex": "./(packages|codemods)/[^/]+/test/.+\\.m?js$",
|
"testRegex": "./(packages|codemods|eslint)/[^/]+/test/.+\\.m?js$",
|
||||||
"testPathIgnorePatterns": [
|
"testPathIgnorePatterns": [
|
||||||
"/node_modules/",
|
"/node_modules/",
|
||||||
"/test/fixtures/",
|
"/test/fixtures/",
|
||||||
|
|||||||
@ -20,7 +20,7 @@ if [ -n "$TEST_GREP" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$TEST_ONLY" ]; then
|
if [ -n "$TEST_ONLY" ]; then
|
||||||
jestArgs+=("(packages|codemods)/.*$TEST_ONLY.*/test")
|
jestArgs+=("(packages|codemods|eslint)/.*$TEST_ONLY.*/test")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$node node_modules/jest/bin/jest.js "${jestArgs[@]}"
|
$node node_modules/jest/bin/jest.js "${jestArgs[@]}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user