From 0881f92d20cb7b4f5a75671df739c3eaa3cd0ff0 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 22 Dec 2019 09:21:26 +0900 Subject: Make .eslintrc simpler --- .eslintrc | 91 +++++++++++---------------------------------------------------- 1 file changed, 15 insertions(+), 76 deletions(-) (limited to '.eslintrc') diff --git a/.eslintrc b/.eslintrc index 248fa39..83c628c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,90 +1,29 @@ { "env": { "es6": true, - "node" : true, + "node": true, "browser" : true, "webextensions": true }, + + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "prettier", + "prettier/@typescript-eslint", + "prettier/react", + "prettier/standard" + ], "plugins": [ + "@typescript-eslint", + "prettier", "react", - "@typescript-eslint" + "standard" ], - "parser": "@typescript-eslint/parser", "parserOptions": { + "sourceType": "module", "ecmaFeatures": { "jsx": true - }, - "sourceType": "module", - "project": "./tsconfig.json" - }, - "extends": [ "eslint:all", "plugin:react/recommended" ], - "rules": { - "array-bracket-newline": ["error", { "multiline": true }], - "array-element-newline": "off", - "arrow-body-style": "off", - "arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }], - "brace-style": ["error", "1tbs", { "allowSingleLine": true }], - "capitalized-comments": "off", - "class-methods-use-this": "off", - "comma-dangle": "off", - "consistent-return": "off", - "default-case": "off", - "dot-location": ["error", "property"], - "function-paren-newline": "off", - "function-call-argument-newline": ["error", "consistent"], - "id-length": "off", - "indent": ["error", 2], - "init-declarations": "off", - "jsx-quotes": ["error", "prefer-single"], - "max-classes-per-file": "off", - "max-lines": "off", - "max-params": ["error", 10], - "max-statements": ["error", 15], - "multiline-comment-style": "off", - "multiline-ternary": "off", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": "off", - "no-alert": "off", - "no-bitwise": "off", - "no-console": ["error", { "allow": ["warn", "error"] }], - "no-continue": "off", - "no-empty-function": "off", - "no-extra-parens": "off", - "no-magic-numbers": "off", - "no-mixed-operators": "off", - "no-plusplus": "off", - "no-ternary": "off", - "no-undefined": "off", - "no-undef-init": "off", - "no-unused-vars": "off", - "no-use-before-define": "off", - "no-useless-constructor": "off", - "no-warning-comments": "off", - "object-curly-newline": ["error", { "consistent": true }], - "object-curly-spacing": ["error", "always", { "arraysInObjects": false, "objectsInObjects": false }], - "object-property-newline": ["error", { "allowMultiplePropertiesPerLine": true }], - "object-shorthand": "off", - "one-var": "off", - "padded-blocks": "off", - "prefer-const": "off", - "prefer-destructuring": ["error", { "AssignmentExpression": {"array": false}}], - "prefer-template": "off", - "quote-props": "off", - "quotes": ["error", "single", { "allowTemplateLiterals": true }], - "require-jsdoc": "off", - "require-unicode-regexp": "off", - "semi": "off", - "sort-imports": "off", - "sort-keys": "off", - "sort-vars": "off", - "space-before-function-paren": ["error", "never"], - - "react/jsx-indent": ["error", 2], - "react/prop-types": "off", - "react/react-in-jsx-scope": "off", - - "@typescript-eslint/no-unused-vars": ["error", { args: "none" }], - "@typescript-eslint/semi": ["error"] + } } } -- cgit v1.2.3 From e21f9f8733b0894a348831fff02e2d8ab71d3c35 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 22 Dec 2019 10:27:31 +0900 Subject: Fix lint rules --- .eslintrc | 8 ++++++++ src/settings/components/ui/AddButton.tsx | 3 +-- src/settings/components/ui/DeleteButton.tsx | 3 +-- 3 files changed, 10 insertions(+), 4 deletions(-) (limited to '.eslintrc') diff --git a/.eslintrc b/.eslintrc index 83c628c..0ff0b11 100644 --- a/.eslintrc +++ b/.eslintrc @@ -25,5 +25,13 @@ "ecmaFeatures": { "jsx": true } + }, + "rules": { + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], + "@typescript-eslint/no-use-before-define": "off" } } diff --git a/src/settings/components/ui/AddButton.tsx b/src/settings/components/ui/AddButton.tsx index 0577068..bb76d08 100644 --- a/src/settings/components/ui/AddButton.tsx +++ b/src/settings/components/ui/AddButton.tsx @@ -1,8 +1,7 @@ import './AddButton.scss'; import React from 'react'; -interface Props extends React.AllHTMLAttributes { -} +type Props = React.AllHTMLAttributes; class AddButton extends React.Component { render() { diff --git a/src/settings/components/ui/DeleteButton.tsx b/src/settings/components/ui/DeleteButton.tsx index f0ef6c9..e666426 100644 --- a/src/settings/components/ui/DeleteButton.tsx +++ b/src/settings/components/ui/DeleteButton.tsx @@ -1,8 +1,7 @@ import './DeleteButton.scss'; import React from 'react'; -interface Props extends React.AllHTMLAttributes { -} +type Props = React.AllHTMLAttributes; class DeleteButton extends React.Component { render() { -- cgit v1.2.3 From da72c2ddd916d79d134662e3985b53a4ac78af7a Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 22 Dec 2019 10:42:48 +0900 Subject: Fix lint rules on tests --- .eslintrc | 1 + test/background/repositories/Mark.test.ts | 5 ++--- test/console/components/console/Completion.test.tsx | 2 -- test/content/InputDriver.test.ts | 2 +- test/content/presenters/Hint.test.ts | 2 +- test/content/presenters/NavigationPresenter.test.ts | 7 +++---- test/content/repositories/KeymapRepository.test.ts | 10 +++++----- test/content/usecases/ClipboardUseCase.test.ts | 20 ++++++++++++++++---- test/main.ts | 6 ++---- 9 files changed, 31 insertions(+), 24 deletions(-) (limited to '.eslintrc') diff --git a/.eslintrc b/.eslintrc index 0ff0b11..d08c3a6 100644 --- a/.eslintrc +++ b/.eslintrc @@ -28,6 +28,7 @@ }, "rules": { "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-namespace": "off", "@typescript-eslint/no-non-null-assertion": "off", diff --git a/test/background/repositories/Mark.test.ts b/test/background/repositories/Mark.test.ts index 625f11d..ed1a68e 100644 --- a/test/background/repositories/Mark.test.ts +++ b/test/background/repositories/Mark.test.ts @@ -1,11 +1,10 @@ import MarkRepository from 'background/repositories/MarkRepository'; -import GlobalMark from 'background/domains/GlobalMark'; describe('background/repositories/mark', () => { - let repository; + let repository: MarkRepository; beforeEach(() => { - repository = new MarkRepository; + repository = new MarkRepository(); }); it('get and set', async() => { diff --git a/test/console/components/console/Completion.test.tsx b/test/console/components/console/Completion.test.tsx index a271d77..e411c4a 100644 --- a/test/console/components/console/Completion.test.tsx +++ b/test/console/components/console/Completion.test.tsx @@ -84,7 +84,6 @@ describe("console/components/console/completion", () => { size={3} select={1} />); - const instance = component.getInstance(); const root = component.root; let children = root.children[0].children; @@ -127,7 +126,6 @@ describe("console/components/console/completion", () => { select={5} />); const root = component.root; - const instance = component.getInstance(); let children = root.children[0].children; expect(children).to.have.lengthOf(3); diff --git a/test/content/InputDriver.test.ts b/test/content/InputDriver.test.ts index 367ec1d..d3a55dd 100644 --- a/test/content/InputDriver.test.ts +++ b/test/content/InputDriver.test.ts @@ -104,7 +104,7 @@ describe('InputDriver', () => { ['input', 'textarea', 'select'].forEach((name) => { const input = window.document.createElement(name); const driver = new InputDriver(input); - driver.onKey((key: Key): boolean => { + driver.onKey((_key: Key): boolean => { expect.fail(); return false; }); diff --git a/test/content/presenters/Hint.test.ts b/test/content/presenters/Hint.test.ts index 708ddaa..7daa63d 100644 --- a/test/content/presenters/Hint.test.ts +++ b/test/content/presenters/Hint.test.ts @@ -12,7 +12,7 @@ describe('Hint', () => { describe('#constructor', () => { it('creates a hint element with tag name', () => { const link = document.getElementById('test-link'); - const hint = new Hint(link, 'abc'); + new Hint(link, 'abc'); const elem = document.querySelector('.vimvixen-hint'); expect(elem.textContent.trim()).to.be.equal('abc'); diff --git a/test/content/presenters/NavigationPresenter.test.ts b/test/content/presenters/NavigationPresenter.test.ts index 5b6a8ca..6aa057b 100644 --- a/test/content/presenters/NavigationPresenter.test.ts +++ b/test/content/presenters/NavigationPresenter.test.ts @@ -1,9 +1,8 @@ -import NavigationPresenter, { NavigationPresenterImpl } - from '../../../src/content/presenters/NavigationPresenter'; +import { NavigationPresenterImpl } from '../../../src/content/presenters/NavigationPresenter'; import { expect } from 'chai'; -describe('NavigationPresenter', () => { - let sut; +describe('NavigationPresenterImpl', () => { + let sut: NavigationPresenterImpl; const testRel = (done, rel, html) => { const method = rel === 'prev' ? sut.openLinkPrev.bind(sut) : sut.openLinkNext.bind(sut); diff --git a/test/content/repositories/KeymapRepository.test.ts b/test/content/repositories/KeymapRepository.test.ts index df013df..68f515c 100644 --- a/test/content/repositories/KeymapRepository.test.ts +++ b/test/content/repositories/KeymapRepository.test.ts @@ -12,11 +12,11 @@ describe('KeymapRepositoryImpl', () => { describe('#enqueueKey()', () => { it('enqueues keys', () => { - sut.enqueueKey(Key.fromMapKey('a'); - sut.enqueueKey(Key.fromMapKey('b'); - let sequence = sut.enqueueKey(Key.fromMapKey('c')); + sut.enqueueKey(Key.fromMapKey('a')); + sut.enqueueKey(Key.fromMapKey('b')); + const sequence = sut.enqueueKey(Key.fromMapKey('c')); - let keys = sequence.keys; + const keys = sequence.keys; expect(keys[0].equals(Key.fromMapKey('a'))).to.be.true; expect(keys[1].equals(Key.fromMapKey('b'))).to.be.true; expect(keys[2].equals(Key.fromMapKey('c'))).to.be.true; @@ -30,7 +30,7 @@ describe('KeymapRepositoryImpl', () => { sut.enqueueKey(Key.fromMapKey('c')); sut.clear(); - let sequence = sut.enqueueKey(Key.fromMapKey('a')); + const sequence = sut.enqueueKey(Key.fromMapKey('a')); expect(sequence.length()).to.equal(1); }); }); diff --git a/test/content/usecases/ClipboardUseCase.test.ts b/test/content/usecases/ClipboardUseCase.test.ts index 2e711c6..3cc82fe 100644 --- a/test/content/usecases/ClipboardUseCase.test.ts +++ b/test/content/usecases/ClipboardUseCase.test.ts @@ -6,19 +6,31 @@ import ConsoleClient from '../../../src/content/client/ConsoleClient'; import * as sinon from 'sinon'; import { expect } from 'chai'; +import {Operation} from "../../../src/shared/operations"; describe('ClipboardUseCase', () => { let clipboardRepository: ClipboardRepository; + let operationClient: OperationClient; + let consoleClient: ConsoleClient; + let sut: ClipboardUseCase; beforeEach(() => { - const modal = {}; + clipboardRepository = new class implements ClipboardRepository { + read(): string { return ""; } + write(_text: string) {} + }; + operationClient = new class implements OperationClient { + execBackgroundOp(_repeat: number, _op: Operation): Promise { return Promise.resolve() } + internalOpenUrl(_url: string, _newTab?: boolean, _background?: boolean): Promise { return Promise.resolve() } + }; + consoleClient = new class implements ConsoleClient { + error(_text: string): Promise { return Promise.resolve() } + info(_text: string): Promise { return Promise.resolve() } + }; - clipboardRepository = { read() {}, write(_) {} }; - operationClient = { internalOpenUrl(_) {} }; - consoleClient = { info(_) {}}; sut = new ClipboardUseCase( clipboardRepository, new SettingRepositoryImpl(), diff --git a/test/main.ts b/test/main.ts index 433b531..c985546 100644 --- a/test/main.ts +++ b/test/main.ts @@ -1,8 +1,6 @@ import 'reflect-metadata'; import { expect } from 'chai'; - -const browserFake = require('webextensions-api-fake'); -const browser = browserFake(); +import browserFake from 'webextensions-api-fake'; global.expect = expect; -global.browser = browser; +global.browser = browserFake(); -- cgit v1.2.3