diff --git a/frontend/test/.eslintrc b/frontend/test/.eslintrc new file mode 100644 index 0000000000000000000000000000000000000000..820d4aa1ab191f221199a6affa7c6c4657de7175 --- /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 5bb160930a65796a32b19fc6f2014d58afdae1c9..fc129af68e27decc42573b81b1ea995b13340628 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 38d2af293bc0d13094edd98a97bcf8e2ed4be0ee..328088ed86e06abb0e91c7fb8a21ba56680096c7 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 9416af4f9d0f3d1a6be6838c1f289671ae231e9a..d67f0476d4aff0f55317f1b3a5c71743fda8e77e 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 51131f377dca5b00a0b4cc86b08204231875222e..98f8ad03932ea2b7242396b650303898f4c0fefd 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 e21619af931f45d28154811fc7de2b23b11ed12e..8b6b31f589a2becb8170a0bac563025c3ad08501 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 57c74606bce394f1ea92f2f6053ed3350f612fad..3303d7d58319dbe8e0c7045734c94e0e29a8ee31 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 6d3ec98fedc15b9909726104b39057480cf2af14..efb639af73f5b4805c4458c2a7cc24db356ae145 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 92c460d5abe84e1db6b13a2691f56a070f7e2bad..feb21b0e4911546ada35d4f3ce8e964e53f13179 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 80e628aeee1db342bdf753fee5f142c357684710..93c9bb6f7aa1f628dd752316c46e8935d9b92bdc 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 e15ae023e1b159379dec60c360817885f5be57c5..3f95f396762493b83ed05782bc40eabf0b157a4c 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 c549711f9ddec6fc1e38496e0b1fc3deccce1083..f0503f83fc40d924f567bbffd27344ca91cfd49d 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 96befc4141c2cc3b27c2cf9df919f54d3598b50f..d906d221ba9bd4e4af6088f61993b5c424f15220 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"