Commit 660530a3 by Marcus Efraimsson Committed by GitHub

Merge pull request #12914 from dehrax/12224-final

Karma to Jest: rename and cleanup
parents a1ed3ae0 de25a4fe
...@@ -2,12 +2,12 @@ Follow the setup guide in README.md ...@@ -2,12 +2,12 @@ Follow the setup guide in README.md
### Rebuild frontend assets on source change ### Rebuild frontend assets on source change
``` ```
grunt && grunt watch yarn watch
``` ```
### Rerun tests on source change ### Rerun tests on source change
``` ```
grunt karma:dev yarn jest
``` ```
### Run tests for backend assets before commit ### Run tests for backend assets before commit
...@@ -17,6 +17,6 @@ test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)' ...@@ -17,6 +17,6 @@ test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)'
### Run tests for frontend assets before commit ### Run tests for frontend assets before commit
``` ```
npm test yarn test
go test -v ./pkg/... go test -v ./pkg/...
``` ```
...@@ -43,7 +43,7 @@ To build the assets, rebuild on file change, and serve them by Grafana's webserv ...@@ -43,7 +43,7 @@ To build the assets, rebuild on file change, and serve them by Grafana's webserv
```bash ```bash
npm install -g yarn npm install -g yarn
yarn install --pure-lockfile yarn install --pure-lockfile
yarn run watch yarn watch
``` ```
Build the assets, rebuild on file change with Hot Module Replacement (HMR), and serve them by webpack-dev-server (http://localhost:3333): Build the assets, rebuild on file change with Hot Module Replacement (HMR), and serve them by webpack-dev-server (http://localhost:3333):
...@@ -56,12 +56,7 @@ Note: HMR for Angular is not supported. If you edit files in the Angular part of ...@@ -56,12 +56,7 @@ Note: HMR for Angular is not supported. If you edit files in the Angular part of
Run tests Run tests
```bash ```bash
yarn run jest yarn jest
```
Run karma tests
```bash
yarn run karma
``` ```
### Recompile backend on source change ### Recompile backend on source change
...@@ -98,17 +93,13 @@ In your custom.ini uncomment (remove the leading `;`) sign. And set `app_mode = ...@@ -98,17 +93,13 @@ In your custom.ini uncomment (remove the leading `;`) sign. And set `app_mode =
#### Frontend #### Frontend
Execute all frontend tests Execute all frontend tests
```bash ```bash
yarn run test yarn test
``` ```
Writing & watching frontend tests (we have two test runners) Writing & watching frontend tests
- jest for all new tests that do not require browser context (React+more) - Start watcher: `yarn jest`
- Start watcher: `yarn run jest` - Jest will run all test files that end with the name ".test.ts"
- Jest will run all test files that end with the name ".jest.ts"
- karma + mocha is used for testing angularjs components. We do want to migrate these test to jest over time (if possible).
- Start watcher: `yarn run karma`
- Karma+Mocha runs all files that end with the name "_specs.ts".
#### Backend #### Backend
```bash ```bash
......
...@@ -57,7 +57,7 @@ For this you need nodejs (v.6+). ...@@ -57,7 +57,7 @@ For this you need nodejs (v.6+).
```bash ```bash
npm install -g yarn npm install -g yarn
yarn install --pure-lockfile yarn install --pure-lockfile
npm run watch yarn watch
``` ```
## Running Grafana Locally ## Running Grafana Locally
...@@ -83,21 +83,18 @@ go get github.com/Unknwon/bra ...@@ -83,21 +83,18 @@ go get github.com/Unknwon/bra
bra run bra run
``` ```
You'll also need to run `npm run watch` to watch for changes to the front-end (typescript, html, sass) You'll also need to run `yarn watch` to watch for changes to the front-end (typescript, html, sass)
### Running tests ### Running tests
- You can run backend Golang tests using "go test ./pkg/...". - You can run backend Golang tests using `go test ./pkg/...`.
- Execute all frontend tests with "npm run test" - Execute all frontend tests with `yarn test`
Writing & watching frontend tests (we have two test runners) Writing & watching frontend tests
- Start watcher: `yarn jest`
- Jest will run all test files that end with the name ".test.ts"
- jest for all new tests that do not require browser context (React+more)
- Start watcher: `npm run jest`
- Jest will run all test files that end with the name ".jest.ts"
- karma + mocha is used for testing angularjs components. We do want to migrate these test to jest over time (if possible).
- Start watcher: `npm run karma`
- Karma+Mocha runs all files that end with the name "_specs.ts".
## Creating optimized release packages ## Creating optimized release packages
......
...@@ -13,7 +13,7 @@ module.exports = { ...@@ -13,7 +13,7 @@ module.exports = {
"roots": [ "roots": [
"<rootDir>/public" "<rootDir>/public"
], ],
"testRegex": "(\\.|/)(jest)\\.(jsx?|tsx?)$", "testRegex": "(\\.|/)(test)\\.(jsx?|tsx?)$",
"moduleFileExtensions": [ "moduleFileExtensions": [
"ts", "ts",
"tsx", "tsx",
......
var webpack = require('webpack');
var path = require('path');
var webpackTestConfig = require('./scripts/webpack/webpack.test.js');
module.exports = function(config) {
'use strict';
config.set({
frameworks: ['mocha', 'expect', 'sinon'],
// list of files / patterns to load in the browser
files: [
{ pattern: 'public/test/index.ts', watched: false }
],
preprocessors: {
'public/test/index.ts': ['webpack', 'sourcemap'],
},
webpack: webpackTestConfig,
webpackMiddleware: {
stats: 'minimal',
},
// list of files to exclude
exclude: [],
reporters: ['dots'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
captureTimeout: 20000,
singleRun: true,
// autoWatchBatchDelay: 1000,
// browserNoActivityTimeout: 60000,
});
};
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
"grunt-contrib-copy": "~1.0.0", "grunt-contrib-copy": "~1.0.0",
"grunt-contrib-cssmin": "~1.0.2", "grunt-contrib-cssmin": "~1.0.2",
"grunt-exec": "^1.0.1", "grunt-exec": "^1.0.1",
"grunt-karma": "~2.0.0",
"grunt-notify": "^0.4.5", "grunt-notify": "^0.4.5",
"grunt-postcss": "^0.8.0", "grunt-postcss": "^0.8.0",
"grunt-sass": "^2.0.0", "grunt-sass": "^2.0.0",
...@@ -58,14 +57,6 @@ ...@@ -58,14 +57,6 @@
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"husky": "^0.14.3", "husky": "^0.14.3",
"jest": "^22.0.4", "jest": "^22.0.4",
"karma": "1.7.0",
"karma-chrome-launcher": "~2.2.0",
"karma-expect": "~1.1.3",
"karma-mocha": "~1.3.0",
"karma-phantomjs-launcher": "1.0.4",
"karma-sinon": "^1.0.5",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^3.0.0",
"lint-staged": "^6.0.0", "lint-staged": "^6.0.0",
"load-grunt-tasks": "3.5.2", "load-grunt-tasks": "3.5.2",
"mini-css-extract-plugin": "^0.4.0", "mini-css-extract-plugin": "^0.4.0",
...@@ -112,7 +103,6 @@ ...@@ -112,7 +103,6 @@
"test": "grunt test", "test": "grunt test",
"test:coverage": "grunt test --coverage=true", "test:coverage": "grunt test --coverage=true",
"lint": "tslint -c tslint.json --project tsconfig.json --type-check", "lint": "tslint -c tslint.json --project tsconfig.json --type-check",
"karma": "grunt karma:dev",
"jest": "jest --notify --watch", "jest": "jest --notify --watch",
"api-tests": "jest --notify --watch --config=tests/api/jest.js", "api-tests": "jest --notify --watch --config=tests/api/jest.js",
"precommit": "lint-staged && grunt precommit" "precommit": "lint-staged && grunt precommit"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment