eslint-plugin-jest-formatting
Advanced tools
Comparing version
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getPaddingLineSequences = exports.getActualLastToken = exports.isValidParent = exports.areTokensOnSameLine = exports.isTokenASemicolon = void 0; | ||
exports.isTokenASemicolon = (token) => token.value === ';' && token.type === 'Punctuator'; | ||
@@ -4,0 +5,0 @@ exports.areTokensOnSameLine = (left, right) => left.loc.end.line === right.loc.start.line; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.configs = exports.rules = void 0; | ||
const padding_1 = require("./rules/padding"); | ||
@@ -123,78 +124,3 @@ const paddingConfigs = { | ||
'padding-around-test-blocks': padding_1.createRule(paddingConfigs.test), | ||
'padding-around-all': padding_1.createRule([].concat(...Object.keys(paddingConfigs).map(k => paddingConfigs[k]))), | ||
'padding-before-after-all-blocks': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: 1, | ||
}, | ||
], true), | ||
'padding-before-after-each-blocks': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: 2, | ||
}, | ||
], true), | ||
'padding-before-before-all-blocks': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: 3, | ||
}, | ||
], true), | ||
'padding-before-before-each-blocks': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: 4, | ||
}, | ||
], true), | ||
'padding-before-describe-blocks': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: 5, | ||
}, | ||
], true), | ||
'padding-before-expect-statements': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: 6, | ||
}, | ||
{ | ||
paddingType: 0, | ||
prevStatementType: 6, | ||
nextStatementType: 6, | ||
}, | ||
], true), | ||
'padding-before-test-blocks': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: [10, 9], | ||
}, | ||
], true), | ||
'padding-before-all': padding_1.createRule([ | ||
{ | ||
paddingType: 1, | ||
prevStatementType: 0, | ||
nextStatementType: [ | ||
1, | ||
2, | ||
3, | ||
4, | ||
5, | ||
6, | ||
9, | ||
10, | ||
], | ||
}, | ||
{ | ||
paddingType: 0, | ||
prevStatementType: 6, | ||
nextStatementType: 6, | ||
}, | ||
], true), | ||
'padding-around-all': padding_1.createRule([].concat(...Object.keys(paddingConfigs).map((k) => paddingConfigs[k]))), | ||
}; | ||
@@ -201,0 +127,0 @@ exports.configs = { |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createRule = exports.PaddingType = exports.StatementType = void 0; | ||
const astUtils = require("../ast-utils"); | ||
@@ -108,3 +109,3 @@ var StatementType; | ||
if (Array.isArray(statementType)) { | ||
return statementType.some(type => nodeMatchesType(innerStatementNode, type, paddingContext)); | ||
return statementType.some((type) => nodeMatchesType(innerStatementNode, type, paddingContext)); | ||
} | ||
@@ -111,0 +112,0 @@ return statementTesters[statementType](innerStatementNode, sourceCode); |
{ | ||
"name": "eslint-plugin-jest-formatting", | ||
"version": "1.2.0", | ||
"version": "2.0.0", | ||
"description": "Formatting rules for jest tests", | ||
@@ -23,4 +23,4 @@ "keywords": [ | ||
"pretty": "yarn prettier '**/*.*'", | ||
"lint": "yarn build && yarn link-plugin && yarn pretty --check && yarn eslint .", | ||
"format": "yarn build && yarn link-plugin && yarn pretty --write && yarn eslint --fix .", | ||
"lint": "yarn build && yarn link-plugin && yarn pretty --check && yarn eslint --ext .ts,.js .", | ||
"format": "yarn build && yarn link-plugin && yarn pretty --write && yarn eslint --fix --ext .ts,.js .", | ||
"build": "tsc", | ||
@@ -34,23 +34,24 @@ "test": "yarn build && jest", | ||
"devDependencies": { | ||
"@types/eslint": "4.16.6", | ||
"@types/estree": "0.0.39", | ||
"@types/jest": "24.0.11", | ||
"@types/node": "8.10.0", | ||
"@typescript-eslint/parser": "1.10.2", | ||
"eslint": "5.16.0", | ||
"eslint-config-airbnb-base": "13.1.0", | ||
"eslint-config-prettier": "5.0.0", | ||
"eslint-plugin-import": "2.14.0", | ||
"eslint-plugin-jest": "22.7.0", | ||
"@types/eslint": "^7.2.0", | ||
"@types/jest": "^26.0.0", | ||
"@types/node": "^14.0.13", | ||
"@typescript-eslint/eslint-plugin": "^3.4.0", | ||
"@typescript-eslint/parser": "^3.4.0", | ||
"eslint": "^7.3.1", | ||
"eslint-config-airbnb-base": "^14.2.0", | ||
"eslint-config-prettier": "^6.11.0", | ||
"eslint-import-resolver-typescript": "^2.0.0", | ||
"eslint-plugin-import": "^2.21.2", | ||
"eslint-plugin-jest": "^23.17.1", | ||
"eslint-plugin-jest-formatting": "file:.", | ||
"eslint-plugin-prettier": "3.1.0", | ||
"jest": "24.8.0", | ||
"prettier": "1.18.2", | ||
"typescript": "3.4.1", | ||
"ts-jest": "24.0.2" | ||
"eslint-plugin-prettier": "^3.1.4", | ||
"jest": "^26.1.0", | ||
"prettier": "2.0.5", | ||
"typescript": "^3.9.5", | ||
"ts-jest": "^26.1.1" | ||
}, | ||
"engines": { | ||
"node": ">=8.10.0" | ||
"node": "^10.12.0 || >=12.0.0" | ||
}, | ||
"license": "MIT" | ||
} |
[](https://circleci.com/gh/dangreenisrael/eslint-plugin-jest-formatting/tree/master) | ||
 | ||
**_Note: The master version may not be the version deployed to npm. Please treat https://www.npmjs.com/package/eslint-plugin-jest-formatting as the cannonical source for docs._** | ||
# eslint-plugin-jest-formatting | ||
This package provides ESLint rules for jest test suites. | ||
This project aims to provide formatting rules (auto-fixable where possible) to ensure consistency and readability in jest test suites. | ||
@@ -12,2 +12,4 @@ | ||
**_Note: The master version may not be the version deployed to npm. Please treat https://www.npmjs.com/package/eslint-plugin-jest-formatting as the cannonical source for docs._** | ||
## Installation | ||
@@ -79,11 +81,8 @@ | ||
### Deprecated | ||
## Related Projects | ||
- [padding-before-all](docs/rules/padding-before-all.md) | ||
- [padding-before-before-each-blocks](docs/rules/padding-before-before-each-blocks.md) | ||
- [padding-before-after-each-blocks](docs/rules/padding-before-after-each-blocks.md) | ||
- [padding-before-before-all-blocks](docs/rules/padding-before-before-all-blocks.md) | ||
- [padding-before-after-all-blocks](docs/rules/padding-before-after-all-blocks.md) | ||
- [padding-before-describe-blocks](docs/rules/padding-before-describe-blocks.md) | ||
- [padding-before-expect-statements](docs/rules/padding-before-expect-statements.md) | ||
- [padding-before-test-blocks](docs/rules/padding-before-test-blocks.md) | ||
### eslint-plugin-jest | ||
This provides an extensive set of jest eslint rules | ||
https://github.com/jest-community/eslint-plugin-jest |
import { AST, SourceCode } from 'eslint'; | ||
// This is because we are using @types/estree that are brought in with eslint | ||
// eslint-disable-next-line import/no-extraneous-dependencies | ||
import { Node } from 'estree'; | ||
@@ -3,0 +5,0 @@ |
111
src/index.ts
@@ -134,113 +134,4 @@ /** | ||
'padding-around-all': createRule( | ||
[].concat(...Object.keys(paddingConfigs).map(k => paddingConfigs[k])), | ||
[].concat(...Object.keys(paddingConfigs).map((k) => paddingConfigs[k])), | ||
), | ||
// =========================================================================== | ||
// DEPRECATED | ||
'padding-before-after-all-blocks': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: StatementType.AfterAllToken, | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-after-each-blocks': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: StatementType.AfterEachToken, | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-before-all-blocks': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: StatementType.BeforeAllToken, | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-before-each-blocks': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: StatementType.BeforeEachToken, | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-describe-blocks': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: StatementType.DescribeToken, | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-expect-statements': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: StatementType.ExpectToken, | ||
}, | ||
{ | ||
paddingType: PaddingType.Any, | ||
prevStatementType: StatementType.ExpectToken, | ||
nextStatementType: StatementType.ExpectToken, | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-test-blocks': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: [StatementType.TestToken, StatementType.ItToken], | ||
}, | ||
], | ||
true, | ||
), | ||
// DEPRECATED | ||
'padding-before-all': createRule( | ||
[ | ||
{ | ||
paddingType: PaddingType.Always, | ||
prevStatementType: StatementType.Any, | ||
nextStatementType: [ | ||
StatementType.AfterAllToken, | ||
StatementType.AfterEachToken, | ||
StatementType.BeforeAllToken, | ||
StatementType.BeforeEachToken, | ||
StatementType.DescribeToken, | ||
StatementType.ExpectToken, | ||
StatementType.ItToken, | ||
StatementType.TestToken, | ||
], | ||
}, | ||
{ | ||
paddingType: PaddingType.Any, | ||
prevStatementType: StatementType.ExpectToken, | ||
nextStatementType: StatementType.ExpectToken, | ||
}, | ||
], | ||
true, | ||
), | ||
}; | ||
@@ -247,0 +138,0 @@ |
@@ -12,2 +12,4 @@ /** | ||
import { AST, Rule, SourceCode } from 'eslint'; | ||
// This is because we are using @types/estree that are brought in with eslint | ||
// eslint-disable-next-line import/no-extraneous-dependencies | ||
import { Node } from 'estree'; | ||
@@ -223,3 +225,3 @@ import * as astUtils from '../ast-utils'; | ||
if (Array.isArray(statementType)) { | ||
return statementType.some(type => | ||
return statementType.some((type) => | ||
nodeMatchesType(innerStatementNode, type, paddingContext), | ||
@@ -276,4 +278,4 @@ ); | ||
// here as it's the only place that it's checked. | ||
// @ts-ignore | ||
if (!astUtils.isValidParent(node.parent.type)) { | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
if (!astUtils.isValidParent((node as any).parent.type)) { | ||
return; | ||
@@ -320,3 +322,3 @@ } | ||
configs: Config[], | ||
deprecated: boolean = false, | ||
deprecated = false, | ||
): Rule.RuleModule => ({ | ||
@@ -323,0 +325,0 @@ meta: { |
@@ -7,2 +7,4 @@ /** | ||
/* eslint-disable @typescript-eslint/no-empty-function */ | ||
beforeAll(() => {}); | ||
@@ -9,0 +11,0 @@ beforeEach(() => {}); |
@@ -0,1 +1,3 @@ | ||
/* eslint-disable @typescript-eslint/no-empty-function */ | ||
beforeAll(() => {}); | ||
@@ -2,0 +4,0 @@ |
@@ -111,5 +111,6 @@ /** | ||
}, | ||
] | ||
], | ||
output: valid, | ||
}, | ||
] | ||
}); |
@@ -109,5 +109,6 @@ /** | ||
}, | ||
] | ||
], | ||
output: valid, | ||
}, | ||
] | ||
}); |
@@ -111,5 +111,6 @@ /** | ||
}, | ||
] | ||
], | ||
output: valid, | ||
}, | ||
] | ||
}); |
@@ -111,5 +111,6 @@ /** | ||
}, | ||
] | ||
], | ||
output: valid, | ||
}, | ||
] | ||
}); |
@@ -149,5 +149,6 @@ /** | ||
}, | ||
] | ||
], | ||
output: valid, | ||
}, | ||
] | ||
}); |
@@ -151,5 +151,6 @@ /** | ||
}, | ||
] | ||
], | ||
output: valid, | ||
}, | ||
] | ||
}); |
@@ -159,4 +159,5 @@ /** | ||
], | ||
output: valid, | ||
}, | ||
], | ||
}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
70497
-73.4%17
6.25%47
-14.55%1917
-31.54%87
-1.14%