From 3aa781ef1603a9e8421cf27077e6e334a70f6b48 Mon Sep 17 00:00:00 2001 From: Christoph Reiter <reiter.christoph@gmail.com> Date: Thu, 20 Feb 2020 11:19:23 +0100 Subject: [PATCH] Add eslint support and fix all warnings --- packages/auth/.eslintignore | 3 +++ packages/auth/.eslintrc.json | 25 +++++++++++++++++++++++++ packages/auth/karma.conf.js | 7 ++++++- packages/auth/package.json | 6 +++++- packages/auth/rollup.config.js | 10 +++++++++- packages/auth/src/vpu-auth.js | 2 +- packages/auth/test/unit.js | 18 ++++++++++-------- 7 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 packages/auth/.eslintignore create mode 100644 packages/auth/.eslintrc.json diff --git a/packages/auth/.eslintignore b/packages/auth/.eslintignore new file mode 100644 index 00000000..7b596da7 --- /dev/null +++ b/packages/auth/.eslintignore @@ -0,0 +1,3 @@ +/vendor/** +/dist/** +/*.js \ No newline at end of file diff --git a/packages/auth/.eslintrc.json b/packages/auth/.eslintrc.json new file mode 100644 index 00000000..1ccd30a3 --- /dev/null +++ b/packages/auth/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "env": { + "browser": true, + "es6": true, + "mocha": true + }, + "extends": ["eslint:recommended", "plugin:jsdoc/recommended"], + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parser": "babel-eslint", + "parserOptions": { + "ecmaVersion": 2018, + "sourceType": "module" + }, + "rules": { + "no-unused-vars": ["error", { "args": "none" }], + "semi": [2, "always"], + "jsdoc/require-jsdoc": 0, + "jsdoc/require-param-description": 0, + "jsdoc/require-returns": 0, + "jsdoc/require-param-type": 0 + } +} \ No newline at end of file diff --git a/packages/auth/karma.conf.js b/packages/auth/karma.conf.js index 6a646f5e..b6731e57 100644 --- a/packages/auth/karma.conf.js +++ b/packages/auth/karma.conf.js @@ -4,7 +4,12 @@ process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function(config) { config.set({ basePath: 'dist', - frameworks: ['mocha', 'chai'], + frameworks: ['mocha'], + client: { + mocha: { + ui: 'tdd', + }, + }, files: [ {pattern: './*.js', included: true, watched: true, served: true, type: 'module'}, {pattern: './**/*', included: false, watched: true, served: true}, diff --git a/packages/auth/package.json b/packages/auth/package.json index e624b7d6..75f27bcf 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -10,6 +10,9 @@ "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.0.0", "karma-mocha": "^1.3.0", + "babel-eslint": "^10.0.3", + "eslint": "^6.8.0", + "eslint-plugin-jsdoc": "^21.0.0", "mocha": "^6.2.0", "node-sass": "^4.12.0", "puppeteer": "^1.15.0", @@ -44,6 +47,7 @@ "watch": "npm run watch-local", "watch-local": "rollup -c --watch", "watch-dev": "rollup -c --watch --environment BUILD:development", - "test": "npm run build-test && karma start --singleRun" + "test": "npm run build-test && karma start --singleRun", + "lint": "eslint ." } } diff --git a/packages/auth/rollup.config.js b/packages/auth/rollup.config.js index 549369f1..5dec8e77 100644 --- a/packages/auth/rollup.config.js +++ b/packages/auth/rollup.config.js @@ -8,6 +8,7 @@ import json from 'rollup-plugin-json'; import serve from 'rollup-plugin-serve'; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; +import chai from 'chai'; const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -27,6 +28,10 @@ export default { if (warning.code === 'EVAL') { return; } + // ignore chai warnings + if (warning.code === 'CIRCULAR_DEPENDENCY') { + return; + } warn(warning); }, plugins: [ @@ -43,7 +48,10 @@ export default { } }), commonjs({ - include: 'node_modules/**' + include: 'node_modules/**', + namedExports: { + 'chai': Object.keys(chai), + } }), json(), (build !== 'local' && build !== 'test') ? terser() : false, diff --git a/packages/auth/src/vpu-auth.js b/packages/auth/src/vpu-auth.js index 8199007d..1bfeace9 100644 --- a/packages/auth/src/vpu-auth.js +++ b/packages/auth/src/vpu-auth.js @@ -65,7 +65,7 @@ class VPUAuth extends VPULitElement { this.keycloakDataUpdateEvent = new CustomEvent("vpu-auth-keycloak-data-update", { "detail": "KeyCloak data was updated", bubbles: true, composed: true }); this.closeDropdown = this.closeDropdown.bind(this); - this._onKCChanged = this._onKCChanged.bind(this) + this._onKCChanged = this._onKCChanged.bind(this); } _onKCChanged(event) { diff --git a/packages/auth/test/unit.js b/packages/auth/test/unit.js index b73dd0ee..a2640cca 100644 --- a/packages/auth/test/unit.js +++ b/packages/auth/test/unit.js @@ -1,38 +1,40 @@ +import {expect} from 'chai'; + import '../src/vpu-auth'; import '../src/vpu-auth-demo'; -describe('vpu-auth basics', () => { +suite('vpu-auth basics', () => { let node; - beforeEach(async () => { + suiteSetup(async () => { node = document.createElement('vpu-auth'); document.body.appendChild(node); await node.updateComplete; }); - afterEach(() => { + suiteTeardown(() => { node.remove(); }); - it('should render', () => { + test('should render', () => { expect(node).to.have.property('shadowRoot'); }); }); -describe('vpu-auth-demo basics', () => { +suite('vpu-auth-demo basics', () => { let node; - beforeEach(async () => { + suiteSetup(async () => { node = document.createElement('vpu-auth-demo'); document.body.appendChild(node); await node.updateComplete; }); - afterEach(() => { + suiteTeardown(() => { node.remove(); }); - it('should render', () => { + test('should render', () => { expect(node).to.have.property('shadowRoot'); }); }); -- GitLab