From 260c319a3397ee7079a32a25d91eb05cc9102936 Mon Sep 17 00:00:00 2001 From: Tom Robinson <tlrobinson@gmail.com> Date: Thu, 8 Dec 2016 14:55:49 -0800 Subject: [PATCH] Lint frontend tests, including checking for accidental fdescribe/fit --- frontend/test/.eslintrc | 13 +++++++++++++ frontend/test/e2e/admin/datamodel.spec.js | 7 ------- frontend/test/e2e/admin/people.spec.js | 4 ---- frontend/test/e2e/auth/login.spec.js | 9 +-------- .../test/e2e/query_builder/query_builder.spec.js | 7 ------- frontend/test/e2e/query_builder/tutorial.spec.js | 5 ----- frontend/test/e2e/setup/signup.spec.js | 5 ----- frontend/test/e2e/support/shared-resource.js | 2 +- frontend/test/e2e/support/utils.js | 2 -- frontend/test/karma.conf.js | 3 --- frontend/test/unit/lib/expressions.spec.js | 14 +++++++------- package.json | 3 ++- yarn.lock | 4 ++++ 13 files changed, 28 insertions(+), 50 deletions(-) create mode 100644 frontend/test/.eslintrc diff --git a/frontend/test/.eslintrc b/frontend/test/.eslintrc new file mode 100644 index 00000000000..820d4aa1ab1 --- /dev/null +++ b/frontend/test/.eslintrc @@ -0,0 +1,13 @@ +{ + "rules": { + "jasmine/no-focused-tests": 2, + "jasmine/no-suite-dupes": [2, "branch"] + }, + "env": { + "jasmine": true, + "node": true + }, + "plugins": [ + "jasmine" + ] +} diff --git a/frontend/test/e2e/admin/datamodel.spec.js b/frontend/test/e2e/admin/datamodel.spec.js index 5bb160930a6..fc129af68e2 100644 --- a/frontend/test/e2e/admin/datamodel.spec.js +++ b/frontend/test/e2e/admin/datamodel.spec.js @@ -1,16 +1,9 @@ - -import { By, until } from "selenium-webdriver"; - import { - waitForElement, waitForElementText, - waitForElementRemoved, findElement, waitForElementAndClick, waitForElementAndSendKeys, - waitForUrl, screenshot, - loginMetabase, ensureLoggedIn, describeE2E } from "../support/utils"; diff --git a/frontend/test/e2e/admin/people.spec.js b/frontend/test/e2e/admin/people.spec.js index 38d2af293bc..328088ed86e 100644 --- a/frontend/test/e2e/admin/people.spec.js +++ b/frontend/test/e2e/admin/people.spec.js @@ -1,10 +1,6 @@ - -import { By, until } from "selenium-webdriver"; - import { waitForElement, waitForElementText, - waitForElementRemoved, findElement, waitForElementAndClick, waitForElementAndSendKeys, diff --git a/frontend/test/e2e/auth/login.spec.js b/frontend/test/e2e/auth/login.spec.js index 9416af4f9d0..d67f0476d4a 100644 --- a/frontend/test/e2e/auth/login.spec.js +++ b/frontend/test/e2e/auth/login.spec.js @@ -1,13 +1,6 @@ -import { By, until } from "selenium-webdriver"; - +import { By } from "selenium-webdriver"; import { - waitForElement, - waitForElementText, - waitForElementRemoved, - findElement, - waitForElementAndClick, - waitForElementAndSendKeys, waitForUrl, screenshot, loginMetabase, diff --git a/frontend/test/e2e/query_builder/query_builder.spec.js b/frontend/test/e2e/query_builder/query_builder.spec.js index 51131f377dc..98f8ad03932 100644 --- a/frontend/test/e2e/query_builder/query_builder.spec.js +++ b/frontend/test/e2e/query_builder/query_builder.spec.js @@ -1,16 +1,9 @@ -import { By, until } from "selenium-webdriver"; - import { - waitForElement, - waitForElementText, waitForElementRemoved, - findElement, waitForElementAndClick, waitForElementAndSendKeys, - waitForUrl, screenshot, - loginMetabase, describeE2E, ensureLoggedIn } from "../support/utils"; diff --git a/frontend/test/e2e/query_builder/tutorial.spec.js b/frontend/test/e2e/query_builder/tutorial.spec.js index e21619af931..8b6b31f589a 100644 --- a/frontend/test/e2e/query_builder/tutorial.spec.js +++ b/frontend/test/e2e/query_builder/tutorial.spec.js @@ -1,15 +1,10 @@ -import { By, until } from "selenium-webdriver"; - import { waitForElement, - waitForElementText, waitForElementRemoved, - findElement, waitForElementAndClick, waitForElementAndSendKeys, waitForUrl, screenshot, - loginMetabase, describeE2E, ensureLoggedIn } from "../support/utils"; diff --git a/frontend/test/e2e/setup/signup.spec.js b/frontend/test/e2e/setup/signup.spec.js index 57c74606bce..3303d7d5831 100644 --- a/frontend/test/e2e/setup/signup.spec.js +++ b/frontend/test/e2e/setup/signup.spec.js @@ -1,17 +1,12 @@ import path from "path"; -import { By, until } from "selenium-webdriver"; - import { waitForElement, - waitForElementText, - waitForElementRemoved, findElement, waitForElementAndClick, waitForElementAndSendKeys, waitForUrl, screenshot, - loginMetabase, describeE2E } from "../support/utils"; diff --git a/frontend/test/e2e/support/shared-resource.js b/frontend/test/e2e/support/shared-resource.js index 6d3ec98fedc..efb639af73f 100644 --- a/frontend/test/e2e/support/shared-resource.js +++ b/frontend/test/e2e/support/shared-resource.js @@ -22,7 +22,7 @@ export default function createSharedResource(resourceName, { return Promise.all(exitPromises); }) - async function kill(entry) { + function kill(entry) { if (entriesByKey.has(entry.key)) { entriesByKey.delete(entry.key); entriesByResource.delete(entry.resource); diff --git a/frontend/test/e2e/support/utils.js b/frontend/test/e2e/support/utils.js index 92c460d5abe..feb21b0e491 100644 --- a/frontend/test/e2e/support/utils.js +++ b/frontend/test/e2e/support/utils.js @@ -7,8 +7,6 @@ import { Driver } from "webchauffeur"; const DEFAULT_TIMEOUT = 50000; -const delay = (timeout = 0) => new Promise((resolve) => setTimeout(resolve, timeout)); - const log = (message) => { console.log(message); }; diff --git a/frontend/test/karma.conf.js b/frontend/test/karma.conf.js index 80e628aeee1..93c9bb6f7aa 100644 --- a/frontend/test/karma.conf.js +++ b/frontend/test/karma.conf.js @@ -36,9 +36,6 @@ module.exports = function(config) { webpackMiddleware: { stats: "errors-only" }, - webpackMiddleware: { - stats: "errors-only", - }, coverageReporter: { dir: '../coverage/', subdir: function(browser) { diff --git a/frontend/test/unit/lib/expressions.spec.js b/frontend/test/unit/lib/expressions.spec.js index e15ae023e1b..3f95f396762 100644 --- a/frontend/test/unit/lib/expressions.spec.js +++ b/frontend/test/unit/lib/expressions.spec.js @@ -1,5 +1,5 @@ import _ from "underscore"; -import { formatExpression, parseExpressionString, tokenAtPosition, tokensToExpression } from "metabase/lib/expressions"; +import { formatExpression, parseExpressionString } from "metabase/lib/expressions"; const mockFields = [ {id: 1, display_name: "A"}, @@ -10,12 +10,12 @@ const mockFields = [ const mathOperators = new Set(['+', '-', '*', '/']); -const parsedMathOperators = { - "+": { value: '+', start: 2, end: 3, parsedValue: '+' }, - "-": { value: '-', start: 2, end: 3, parsedValue: '-' }, - "*": { value: '*', start: 2, end: 3, parsedValue: '*' }, - "/": { value: '/', start: 2, end: 3, parsedValue: '/' } -} +// const parsedMathOperators = { +// "+": { value: '+', start: 2, end: 3, parsedValue: '+' }, +// "-": { value: '-', start: 2, end: 3, parsedValue: '-' }, +// "*": { value: '*', start: 2, end: 3, parsedValue: '*' }, +// "/": { value: '/', start: 2, end: 3, parsedValue: '/' } +// } function stripStartEnd(list) { return list.map(i => { diff --git a/package.json b/package.json index c549711f9dd..f0503f83fc4 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "eslint": "^3.5.0", "eslint-loader": "^1.6.0", "eslint-plugin-flowtype": "^2.22.0", + "eslint-plugin-jasmine": "^2.2.0", "eslint-plugin-react": "^6.3.0", "exports-loader": "^0.6.3", "extract-text-webpack-plugin": "^1.0.1", @@ -123,7 +124,7 @@ }, "scripts": { "dev": "yarn && concurrently --kill-others -p name -n 'backend,frontend' -c 'blue,green' 'lein ring server' 'yarn run build-hot'", - "lint": "eslint --ext .js --ext .jsx --max-warnings 0 frontend/src", + "lint": "eslint --ext .js --ext .jsx --max-warnings 0 frontend/src frontend/test", "flow": "flow check", "test": "karma start frontend/test/karma.conf.js --single-run", "test-watch": "karma start frontend/test/karma.conf.js --auto-watch --reporters nyan", diff --git a/yarn.lock b/yarn.lock index 96befc4141c..d906d221ba9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2368,6 +2368,10 @@ eslint-plugin-flowtype: dependencies: lodash "^4.15.0" +eslint-plugin-jasmine@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.2.0.tgz#7135879383c39a667c721d302b9f20f0389543de" + eslint-plugin-react@^6.3.0: version "6.4.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.4.1.tgz#7d1aade747db15892f71eee1fea4addf97bcfa2b" -- GitLab