Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: convert to TS #305

Merged
merged 21 commits into from Jul 22, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f08caeb
chore: setup build and lint for TS migration
SimenB Jul 22, 2019
0b0e28d
chore(lowercase-name): migrate to TS
SimenB Jul 22, 2019
04d2a15
chore(no-jest-import): migrate to TS
SimenB Jul 22, 2019
1ce3e0e
chore(no-commented-out-tests): migrate to TS
SimenB Jul 17, 2019
136a67c
chore(valid-describe): migrate to TS (#308)
Mark1626 Jul 18, 2019
bb54de6
chore(no-mocks-import): migrate to TS (#309)
G-Rath Jul 18, 2019
2a0db83
chore(no-jasmine-globals): migrate to TS (#315)
G-Rath Jul 20, 2019
be7b806
chore(no-disabled-tests): migrate to TS (#315)
G-Rath Jul 20, 2019
c6d33e1
chore(no-test-return-statement): migrate to TS (#320)
G-Rath Jul 20, 2019
4c7e5c9
chore(no-duplicate-hooks): migrate to TS (#318)
G-Rath Jul 20, 2019
06c12a6
chore(prefer-inline-snapshots): migrate to TS (#319)
G-Rath Jul 20, 2019
ca29df3
chore(no-focused-tests): migrate to TS (#314)
G-Rath Jul 20, 2019
358cd09
chore(no-hooks): migrate to TS (#322)
G-Rath Jul 20, 2019
c22043a
chore(no-export): migrate to TS (#323)
G-Rath Jul 20, 2019
0d243e2
chore(no-if): migrate to TS (#324)
G-Rath Jul 20, 2019
637c3f4
chore(prefer-spy-on): migrate to TS (#326)
G-Rath Jul 20, 2019
4e187cd
chore(expect-expect): migrate to TS (#325)
G-Rath Jul 20, 2019
83a0c39
chore(consistent-test-it): migrate to TS (#327)
G-Rath Jul 20, 2019
551204b
chore(no-test-prefixes): migrate to TS (#328)
G-Rath Jul 20, 2019
b772a41
chore(prefer-strict-equal): migrate to TS (#329)
G-Rath Jul 21, 2019
fd76a0a
chore(no-test-callback): migrate to TS (#321)
G-Rath Jul 21, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 10 additions & 3 deletions .eslintrc.js
Expand Up @@ -3,13 +3,20 @@
const { globals } = require('./').environments.globals;

module.exports = {
parser: '@typescript-eslint/parser',
extends: [
'eslint:recommended',
'plugin:eslint-plugin/recommended',
'plugin:node/recommended',
'plugin:@typescript-eslint/eslint-recommended',
'prettier',
],
plugins: ['eslint-plugin', 'node', 'prettier', 'import'],
plugins: [
'eslint-plugin',
'node',
'prettier',
'import',
'@typescript-eslint',
],
parserOptions: {
ecmaVersion: 2018,
},
Expand All @@ -35,7 +42,7 @@ module.exports = {
},
overrides: [
{
files: ['*.test.js'],
files: ['*.test.js', '*.test.ts'],
globals,
},
{
Expand Down
1 change: 1 addition & 0 deletions .gitignore
@@ -1,3 +1,4 @@
node_modules/
coverage/
lib/
*.log
1 change: 1 addition & 0 deletions .travis.yml
Expand Up @@ -13,6 +13,7 @@ script:
- yarn commitlint --from="$TRAVIS_BRANCH" --to="$TRAVIS_COMMIT"
- yarn commitlint --from=$TRAVIS_COMMIT
- yarn prettylint
- yarn typecheck
- yarn test --coverage --maxWorkers 2
after_script: greenkeeper-lockfile-upload
jobs:
Expand Down
5 changes: 4 additions & 1 deletion babel.config.js
@@ -1,5 +1,8 @@
'use strict';

module.exports = {
presets: [['@babel/preset-env', { targets: { node: 6 } }]],
presets: [
'@babel/preset-typescript',
['@babel/preset-env', { targets: { node: 6 } }],
],
};
22 changes: 17 additions & 5 deletions package.json
Expand Up @@ -27,19 +27,30 @@
},
"scripts": {
"prepare": "yarn build && yarn postbuild",
"lint": "eslint . --ignore-pattern '!.eslintrc.js'",
"lint": "eslint . --ignore-pattern '!.eslintrc.js' --ext js,ts",
"prettylint": "prettylint docs/**/*.md README.md package.json",
"prepublishOnly": "yarn build",
"pretest": "yarn build",
"test": "jest",
"build": "babel src --out-dir lib",
"postbuild": "rimraf lib/**/__tests__/**"
"build": "babel --extensions .js,.ts src --out-dir lib",
"postbuild": "rimraf lib/**/__tests__/**",
"typecheck": "tsc -p ."
},
"dependencies": {
"@typescript-eslint/experimental-utils": "^1.13.0"
},
"devDependencies": {
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.4",
"@babel/preset-env": "^7.4.4",
"@babel/preset-typescript": "^7.3.3",
"@commitlint/cli": "^6.0.0",
"@commitlint/config-conventional": "^6.0.0",
"@types/eslint": "^4.16.6",
"@types/jest": "^24.0.15",
"@types/node": "^12.6.6",
"@typescript-eslint/eslint-plugin": "^1.13.0",
"@typescript-eslint/parser": "^1.13.0",
"babel-eslint": "^10.0.2",
"babel-jest": "^24.8.0",
"eslint": "^5.1.0",
Expand All @@ -54,15 +65,16 @@
"lint-staged": "^8.0.4",
"prettier": "^1.10.2",
"prettylint": "^1.0.0",
"rimraf": "^2.6.3"
"rimraf": "^2.6.3",
"typescript": "^3.5.3"
},
"prettier": {
"proseWrap": "always",
"singleQuote": true,
"trailingComma": "all"
},
"lint-staged": {
"*.js": [
"*.{js,ts}": [
"eslint --fix",
"git add"
],
Expand Down
12 changes: 10 additions & 2 deletions src/index.js
Expand Up @@ -13,8 +13,16 @@ function importDefault(moduleName) {
}

const rules = readdirSync(join(__dirname, 'rules'))
.filter(rule => rule !== '__tests__' && rule !== 'util.js')
.map(rule => basename(rule, '.js'))
.filter(
rule =>
rule !== '__tests__' &&
rule !== 'util.js' &&
rule !== 'tsUtils.ts' &&
rule !== 'tsUtils.js',
)
.map(rule =>
rule.endsWith('js') ? basename(rule, '.js') : basename(rule, '.ts'),
)
.reduce(
(acc, curr) =>
Object.assign(acc, { [curr]: importDefault(`./rules/${curr}`) }),
Expand Down
@@ -1,7 +1,7 @@
import { RuleTester } from 'eslint';
import { TSESLint } from '@typescript-eslint/experimental-utils';
import rule from '../consistent-test-it';

const ruleTester = new RuleTester({
const ruleTester = new TSESLint.RuleTester({
parserOptions: {
ecmaVersion: 6,
},
Expand Down
@@ -1,7 +1,10 @@
import { RuleTester } from 'eslint';
import {
AST_NODE_TYPES,
TSESLint,
} from '@typescript-eslint/experimental-utils';
import rule from '../expect-expect';

const ruleTester = new RuleTester({
const ruleTester = new TSESLint.RuleTester({
parserOptions: {
ecmaVersion: 6,
},
Expand Down Expand Up @@ -37,7 +40,7 @@ ruleTester.run('expect-expect', rule, {
errors: [
{
messageId: 'noAssertions',
type: 'CallExpression',
type: AST_NODE_TYPES.CallExpression,
},
],
},
Expand All @@ -46,7 +49,7 @@ ruleTester.run('expect-expect', rule, {
errors: [
{
messageId: 'noAssertions',
type: 'CallExpression',
type: AST_NODE_TYPES.CallExpression,
},
],
},
Expand All @@ -55,7 +58,7 @@ ruleTester.run('expect-expect', rule, {
errors: [
{
messageId: 'noAssertions',
type: 'CallExpression',
type: AST_NODE_TYPES.CallExpression,
},
],
},
Expand All @@ -65,7 +68,7 @@ ruleTester.run('expect-expect', rule, {
errors: [
{
messageId: 'noAssertions',
type: 'CallExpression',
type: AST_NODE_TYPES.CallExpression,
},
],
},
Expand All @@ -75,7 +78,7 @@ ruleTester.run('expect-expect', rule, {
errors: [
{
messageId: 'noAssertions',
type: 'CallExpression',
type: AST_NODE_TYPES.CallExpression,
},
],
},
Expand Down
@@ -1,7 +1,8 @@
import { RuleTester } from 'eslint';
import { TSESLint } from '@typescript-eslint/experimental-utils';
import rule from '../lowercase-name';
import { DescribeAlias, TestCaseName } from '../tsUtils';

const ruleTester = new RuleTester({
const ruleTester = new TSESLint.RuleTester({
parserOptions: {
ecmaVersion: 6,
},
Expand Down Expand Up @@ -54,7 +55,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'it' },
data: { method: TestCaseName.it },
column: 1,
line: 1,
},
Expand All @@ -66,7 +67,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'it' },
data: { method: TestCaseName.it },
column: 1,
line: 1,
},
Expand All @@ -78,7 +79,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'it' },
data: { method: TestCaseName.it },
column: 1,
line: 1,
},
Expand All @@ -90,7 +91,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'test' },
data: { method: TestCaseName.test },
column: 1,
line: 1,
},
Expand All @@ -102,7 +103,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'test' },
data: { method: TestCaseName.test },
column: 1,
line: 1,
},
Expand All @@ -114,7 +115,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'test' },
data: { method: TestCaseName.test },
column: 1,
line: 1,
},
Expand All @@ -126,7 +127,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'describe' },
data: { method: DescribeAlias.describe },
column: 1,
line: 1,
},
Expand All @@ -138,7 +139,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'describe' },
data: { method: DescribeAlias.describe },
column: 1,
line: 1,
},
Expand All @@ -150,7 +151,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'describe' },
data: { method: DescribeAlias.describe },
column: 1,
line: 1,
},
Expand All @@ -162,7 +163,7 @@ ruleTester.run('lowercase-name', rule, {
errors: [
{
messageId: 'unexpectedLowercase',
data: { method: 'describe' },
data: { method: DescribeAlias.describe },
column: 1,
line: 1,
},
Expand All @@ -175,15 +176,15 @@ ruleTester.run('lowercase-name with ignore=describe', rule, {
valid: [
{
code: "describe('Foo', function () {})",
options: [{ ignore: ['describe'] }],
options: [{ ignore: [DescribeAlias.describe] }],
},
{
code: 'describe("Foo", function () {})',
options: [{ ignore: ['describe'] }],
options: [{ ignore: [DescribeAlias.describe] }],
},
{
code: 'describe(`Foo`, function () {})',
options: [{ ignore: ['describe'] }],
options: [{ ignore: [DescribeAlias.describe] }],
},
],
invalid: [],
Expand All @@ -193,15 +194,15 @@ ruleTester.run('lowercase-name with ignore=test', rule, {
valid: [
{
code: "test('Foo', function () {})",
options: [{ ignore: ['test'] }],
options: [{ ignore: [TestCaseName.test] }],
},
{
code: 'test("Foo", function () {})',
options: [{ ignore: ['test'] }],
options: [{ ignore: [TestCaseName.test] }],
},
{
code: 'test(`Foo`, function () {})',
options: [{ ignore: ['test'] }],
options: [{ ignore: [TestCaseName.test] }],
},
],
invalid: [],
Expand All @@ -211,15 +212,15 @@ ruleTester.run('lowercase-name with ignore=it', rule, {
valid: [
{
code: "it('Foo', function () {})",
options: [{ ignore: ['it'] }],
options: [{ ignore: [TestCaseName.it] }],
},
{
code: 'it("Foo", function () {})',
options: [{ ignore: ['it'] }],
options: [{ ignore: [TestCaseName.it] }],
},
{
code: 'it(`Foo`, function () {})',
options: [{ ignore: ['it'] }],
options: [{ ignore: [TestCaseName.it] }],
},
],
invalid: [],
Expand Down
@@ -1,7 +1,7 @@
import { RuleTester } from 'eslint';
import { TSESLint } from '@typescript-eslint/experimental-utils';
import rule from '../no-commented-out-tests';

const ruleTester = new RuleTester({
const ruleTester = new TSESLint.RuleTester({
parserOptions: {
sourceType: 'module',
},
Expand All @@ -24,6 +24,7 @@ ruleTester.run('no-commented-out-tests', rule, {
'testSomething()',
'// latest(dates)',
'// TODO: unify with Git implementation from Shipit (?)',
'#!/usr/bin/env node',
[
'import { pending } from "actions"',
'',
Expand Down Expand Up @@ -141,8 +142,8 @@ ruleTester.run('no-commented-out-tests', rule, {
{
code: `
foo()
/*
describe("has title but no callback", () => {})
/*
describe("has title but no callback", () => {})
*/
bar()`,
errors: [{ messageId: 'commentedTests', column: 7, line: 3 }],
Expand Down