diff --git a/.eslintignore b/.eslintignore
index 4fbcbcd631..22505a3937 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -10,3 +10,4 @@ node_modules/**
gemini/gemini-report/**
gemini/node_modules/**
gemini/gemini-ci.js
+hermione/tests/**
diff --git a/.hermione.conf.js b/.hermione.conf.js
new file mode 100644
index 0000000000..b6e0350d69
--- /dev/null
+++ b/.hermione.conf.js
@@ -0,0 +1,32 @@
+module.exports = {
+ baseUrl: 'http://localhost:8668',
+ sets: {
+ desktop: {
+ files: 'hermione/tests'
+ }
+ },
+
+ browsers: {
+ chrome: {
+ desiredCapabilities: {
+ browserName: 'chrome'
+ }
+ }
+ },
+ plugins: {
+ 'gemini-babel7': true,
+ 'hermione-react': {
+ port: 8668,
+ preparedTestsDir: './prepared-tests',
+ webpackConfig: './hermione/webpack.hermione.config.js'
+ }
+ },
+
+ system: {
+ debug: false,
+ tempDir: './hermione/',
+ ctx: {
+ projectRoot: './'
+ }
+ }
+};
diff --git a/hermione/screens/2f4629c/chrome/plain.png b/hermione/screens/2f4629c/chrome/plain.png
new file mode 100644
index 0000000000..ea4ce84950
Binary files /dev/null and b/hermione/screens/2f4629c/chrome/plain.png differ
diff --git a/hermione/tests/input.hermione.js b/hermione/tests/input.hermione.js
new file mode 100644
index 0000000000..86ee1f62a1
--- /dev/null
+++ b/hermione/tests/input.hermione.js
@@ -0,0 +1,12 @@
+import React from 'react';
+
+// В шаблон мы должны вставить тестируемый компонент
+const template =
TEMPLATE!!!!!!!!!!!!!!!!!!!
;
+
+describe('first-test', function() {
+ it('should first time find hermione', function() {
+ return this.browser
+ .url('/input.hermione')
+ .assertView('plain', '[data-hermione-react]');
+ });
+});
diff --git a/hermione/webpack.hermione.config.js b/hermione/webpack.hermione.config.js
new file mode 100644
index 0000000000..5ffe7ebb96
--- /dev/null
+++ b/hermione/webpack.hermione.config.js
@@ -0,0 +1,18 @@
+/* eslint import/no-extraneous-dependencies: 0 */
+/* eslint strict: [0, "global"] */
+
+'use strict';
+
+const path = require('path');
+const merge = require('webpack-merge');
+const WEBPACK_BASE_TEMPLATE = require('../webpack.base');
+
+module.exports = merge.smart(WEBPACK_BASE_TEMPLATE, {
+ mode: 'development',
+ stats: 'verbose',
+ output: {
+ path: path.join(__dirname, 'dist'),
+ publicPath: '/',
+ filename: '[name].js'
+ }
+});
diff --git a/package-lock.json b/package-lock.json
index bbd7cc2136..19eac05cc7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1689,6 +1689,219 @@
}
}
},
+ "@gemini-testing/commander": {
+ "version": "2.15.2",
+ "resolved": "https://registry.npmjs.org/@gemini-testing/commander/-/commander-2.15.2.tgz",
+ "integrity": "sha512-hjTona7ySenkm+qKGAJ2uEAa1Y/VFZ14ieMWUwlb7MGoBPL3VVoTwEL7bCQiOvbDc2ld5LnDmzzJYcWAw9psbg==",
+ "dev": true
+ },
+ "@gemini-testing/webdriverio": {
+ "version": "4.16.2",
+ "resolved": "https://registry.npmjs.org/@gemini-testing/webdriverio/-/webdriverio-4.16.2.tgz",
+ "integrity": "sha512-vVgAGg5i3U1JwmGvcBf4khnY2R8sAXSkw9AllqOqMhLi0aOTG6v9Dk1eKyg+G6oWXIkqndHzyE+VUNT42Aue0A==",
+ "dev": true,
+ "requires": {
+ "archiver": "~2.1.0",
+ "babel-runtime": "^6.26.0",
+ "css-parse": "^2.0.0",
+ "css-value": "~0.0.1",
+ "deepmerge": "~2.0.1",
+ "ejs": "~2.5.6",
+ "gaze": "~1.1.2",
+ "glob": "~7.1.1",
+ "grapheme-splitter": "^1.0.2",
+ "inquirer": "~3.3.0",
+ "json-stringify-safe": "~5.0.1",
+ "mkdirp": "~0.5.1",
+ "npm-install-package": "~2.1.0",
+ "optimist": "~0.6.1",
+ "q": "~1.5.0",
+ "request": "^2.83.0",
+ "rgb2hex": "^0.1.9",
+ "safe-buffer": "~5.1.1",
+ "supports-color": "~5.0.0",
+ "url": "~0.11.0",
+ "wdio-dot-reporter": "~0.0.8",
+ "wgxpath": "~1.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "archiver": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.1.tgz",
+ "integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^1.3.0",
+ "async": "^2.0.0",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.0.0",
+ "lodash": "^4.8.0",
+ "readable-stream": "^2.0.0",
+ "tar-stream": "^1.5.0",
+ "zip-stream": "^1.2.0"
+ }
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "compress-commons": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
+ "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "^0.2.1",
+ "crc32-stream": "^2.0.0",
+ "normalize-path": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "crc32-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
+ "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "ejs": {
+ "version": "2.5.9",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.9.tgz",
+ "integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ==",
+ "dev": true
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.0.1.tgz",
+ "integrity": "sha512-7FQGOlSQ+AQxBNXJpVDj8efTA/FtyB5wcNE1omXXJ0cq6jm1jjDwuROlYDbnzHqdNPqliWFhcioCWSyav+xBnA==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^2.0.0"
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+ "dev": true,
+ "requires": {
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.2.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "zip-stream": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
+ "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^1.3.0",
+ "compress-commons": "^1.2.0",
+ "lodash": "^4.8.0",
+ "readable-stream": "^2.0.0"
+ }
+ }
+ }
+ },
"@gulp-sourcemaps/identity-map": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz",
@@ -3067,6 +3280,40 @@
}
}
},
+ "archiver-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
+ "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "graceful-fs": "^4.1.0",
+ "lazystream": "^1.0.0",
+ "lodash": "^4.8.0",
+ "normalize-path": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.5"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
"archy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
@@ -5796,6 +6043,15 @@
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
+ "bluebird-q": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bluebird-q/-/bluebird-q-2.1.1.tgz",
+ "integrity": "sha1-cfk9BVVdYNkPJzKK3Vcw2rlOmYs=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.4.6"
+ }
+ },
"bn.js": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
@@ -6266,6 +6522,22 @@
"isarray": "^1.0.0"
}
},
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "dev": true
+ },
"buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@@ -6278,6 +6550,12 @@
"integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
"dev": true
},
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -6752,6 +7030,24 @@
"rimraf": "^2.6.1"
}
},
+ "clear-require": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/clear-require/-/clear-require-1.0.1.tgz",
+ "integrity": "sha1-X+/mPx9XhpmgSbWF0xNq0qoPrX8=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ }
+ }
+ },
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
@@ -8272,6 +8568,27 @@
"request": "^2.79.0"
}
},
+ "crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.1.0"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz",
+ "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ }
+ }
+ },
"crc32-stream": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.4.tgz",
@@ -8567,6 +8884,15 @@
}
}
},
+ "css-parse": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz",
+ "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=",
+ "dev": true,
+ "requires": {
+ "css": "^2.0.0"
+ }
+ },
"css-select": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
@@ -8666,6 +8992,12 @@
"integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=",
"dev": true
},
+ "css-value": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz",
+ "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=",
+ "dev": true
+ },
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
@@ -9357,6 +9689,12 @@
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true
},
+ "deepmerge": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.0.1.tgz",
+ "integrity": "sha512-VIPwiMJqJ13ZQfaCsIFnp5Me9tnjURiaIFxfz7EH0Ci0dTSQpZtSLrqOicXqEd/z2r+z+Klk9GzmnRsgpgbOsQ==",
+ "dev": true
+ },
"default-compare": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
@@ -9626,6 +9964,12 @@
}
}
},
+ "diff": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
+ "dev": true
+ },
"diff-sequences": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
@@ -12095,6 +12439,12 @@
"readable-stream": "^2.0.0"
}
},
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true
+ },
"fs-extra": {
"version": "0.30.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
@@ -12740,6 +13090,15 @@
"simple-git": "^1.85.0"
}
},
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "^1.0.0"
+ }
+ },
"gemini": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/gemini/-/gemini-5.5.0.tgz",
@@ -14008,6 +14367,25 @@
"integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
"dev": true
},
+ "globule": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
+ "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
+ "dev": true,
+ "requires": {
+ "glob": "~7.1.1",
+ "lodash": "~4.17.12",
+ "minimatch": "~3.0.2"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ }
+ }
+ },
"glogg": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
@@ -14125,6 +14503,18 @@
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
"dev": true
},
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz",
+ "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=",
+ "dev": true
+ },
"growly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -15417,6 +15807,210 @@
"sntp": "1.x.x"
}
},
+ "hermione": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/hermione/-/hermione-3.0.1.tgz",
+ "integrity": "sha512-swERzKhTOKEtUh3H88v5uehCSSo7ZiPx2fTeqJ1XM/q9KmHTgmqPLlSIi6UCkhxuiy2njyu9CfD+bTq2roGfHA==",
+ "dev": true,
+ "requires": {
+ "@gemini-testing/commander": "2.15.2",
+ "@gemini-testing/webdriverio": "4.16.2",
+ "bluebird": "^3.5.1",
+ "bluebird-q": "^2.1.1",
+ "chalk": "^1.1.1",
+ "clear-require": "^1.0.1",
+ "fs-extra": "^5.0.0",
+ "gemini-configparser": "^1.0.0",
+ "gemini-core": "^5.0.1",
+ "inherit": "^2.2.2",
+ "lodash": "^4.17.4",
+ "mocha": "~2.4.5",
+ "plugins-loader": "^1.1.0",
+ "q": "^2.0.0",
+ "q-promise-utils": "^1.0.0",
+ "teamcity-service-messages": "^0.1.6",
+ "urijs": "^1.17.0",
+ "worker-farm": "^1.7.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "color-diff": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/color-diff/-/color-diff-1.1.0.tgz",
+ "integrity": "sha1-mDrn+TZnnpTjZd/kShaqFTva6I4=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fs-extra": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
+ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "gemini-core": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/gemini-core/-/gemini-core-5.0.1.tgz",
+ "integrity": "sha512-DRmfVkbwxdjl3pxTe9PxRTqqY9ehS3cTGqxJqShOXHX0aNF9LyZfF0i8xZBnsR3eLc7cB6ke9bRQm6S+iELKuw==",
+ "dev": true,
+ "requires": {
+ "aliasify": "^1.9.0",
+ "bluebird": "^3.4.6",
+ "browserify": "^13.3.0",
+ "debug": "^2.2.0",
+ "gemini-configparser": "^1.0.0",
+ "glob-extra": "^4.0.1",
+ "lodash": "^4.15.0",
+ "looks-same": "^7.1.1",
+ "micromatch": "^4.0.2",
+ "png-img": "^2.1.1",
+ "sizzle": "^2.3.3",
+ "temp": "^0.8.3",
+ "uglify-js": "^2.8.29",
+ "uglifyify": "^3.0.4",
+ "yallist": "^3.0.3"
+ }
+ },
+ "glob-extra": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/glob-extra/-/glob-extra-4.0.2.tgz",
+ "integrity": "sha512-7lNZKnJY+a+AS2jMvoDW21t/K4H/vyDEczISyfGP5vn0BmlXVF0EoxepyFtGltzQIyznqyeZknDxQxJEidDnvg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "fast-glob": "^2.2.7",
+ "glob": "^7.0.5",
+ "lodash": "^4.15.0",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "looks-same": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/looks-same/-/looks-same-7.2.2.tgz",
+ "integrity": "sha512-I8WvkX68SMfjmKpRIhIQW8U4p4VyWCnkLeRl/tzMIgMjnF+6JeWZqwZgFuMH7djm4VoGTQlyFZY5GFvN88nugg==",
+ "dev": true,
+ "requires": {
+ "color-diff": "^1.1.0",
+ "concat-stream": "^1.6.2",
+ "fs-extra": "^8.1.0",
+ "js-graph-algorithms": "1.0.18",
+ "lodash": "^4.17.3",
+ "nested-error-stacks": "^2.1.0",
+ "parse-color": "^1.0.0",
+ "pngjs": "^3.3.3"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "q": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz",
+ "integrity": "sha1-dbjbAlWhpa+C9Yw/Oqoe/sfQ0TQ=",
+ "dev": true,
+ "requires": {
+ "asap": "^2.0.0",
+ "pop-iterate": "^1.0.1",
+ "weak-map": "^1.0.5"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ }
+ }
+ },
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@@ -17079,6 +17673,30 @@
"is-object": "^1.0.1"
}
},
+ "jade": {
+ "version": "0.26.3",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+ "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "mkdirp": "0.3.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "dev": true
+ }
+ }
+ },
"javascript-stringify": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz",
@@ -17939,6 +18557,12 @@
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
"dev": true
},
+ "js-graph-algorithms": {
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/js-graph-algorithms/-/js-graph-algorithms-1.0.18.tgz",
+ "integrity": "sha1-+W7Ie/GU9cCjE2X6Dh0Ht7li2JE=",
+ "dev": true
+ },
"js-levenshtein": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
@@ -20054,6 +20678,91 @@
}
}
},
+ "mocha": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.4.5.tgz",
+ "integrity": "sha1-FRdo3Sh161G8gpXpgAAm6fK7OY8=",
+ "dev": true,
+ "requires": {
+ "commander": "2.3.0",
+ "debug": "2.2.0",
+ "diff": "1.4.0",
+ "escape-string-regexp": "1.0.2",
+ "glob": "3.2.3",
+ "growl": "1.8.1",
+ "jade": "0.26.3",
+ "mkdirp": "0.5.1",
+ "supports-color": "1.2.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz",
+ "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "dev": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz",
+ "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
+ "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~2.0.0",
+ "inherits": "2",
+ "minimatch": "~0.2.11"
+ }
+ },
+ "graceful-fs": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
+ "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz",
+ "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=",
+ "dev": true
+ }
+ }
+ },
"modify-values": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
@@ -20342,6 +21051,12 @@
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
"dev": true
},
+ "nested-error-stacks": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz",
+ "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==",
+ "dev": true
+ },
"next-tick": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
@@ -20531,6 +21246,12 @@
"once": "^1.3.2"
}
},
+ "npm-install-package": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz",
+ "integrity": "sha1-1+/jz816sAYUuJbqUxGdyaslkSU=",
+ "dev": true
+ },
"npm-path": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz",
@@ -21650,6 +22371,12 @@
"integrity": "sha1-nmTWAs/pzOTZ1Zl9BodCmnPwt9c=",
"dev": true
},
+ "pop-iterate": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz",
+ "integrity": "sha1-zqz9q0q/NT16DyqqLB/Hs/lBO6M=",
+ "dev": true
+ },
"portfinder": {
"version": "1.0.25",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",
@@ -24659,6 +25386,24 @@
"stringify-object": "^3.2.0"
}
},
+ "q-promise-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/q-promise-utils/-/q-promise-utils-1.1.0.tgz",
+ "integrity": "sha1-WuKbb/9pPQGmLCMCDlRLUS1Kkio=",
+ "dev": true,
+ "requires": {
+ "lodash": "^3.10.1",
+ "q": "^1.4.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+ "dev": true
+ }
+ }
+ },
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -26163,6 +26908,12 @@
"integrity": "sha1-vieykej+/+rBvZlylyG/pA/AN7U=",
"dev": true
},
+ "rgb2hex": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.10.tgz",
+ "integrity": "sha512-vKz+kzolWbL3rke/xeTE2+6vHmZnNxGyDnaVW4OckntAIcc7DcZzWkQSfxMDwqHS8vhgySnIFyBUH7lIk6PxvQ==",
+ "dev": true
+ },
"right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
@@ -28547,6 +29298,12 @@
}
}
},
+ "teamcity-service-messages": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/teamcity-service-messages/-/teamcity-service-messages-0.1.10.tgz",
+ "integrity": "sha512-CdpMw9RPc8v/Vv3tzx8Bo1EQxNWs4toE/KtYRE8uDxr67vh9asTd3WRHI/y0VB7fZho2NGSuvecVjzl2BULFEQ==",
+ "dev": true
+ },
"temp": {
"version": "0.8.4",
"resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
@@ -29161,6 +29918,12 @@
}
}
},
+ "to-buffer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
+ "dev": true
+ },
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -30738,6 +31501,18 @@
}
}
},
+ "wdio-dot-reporter": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/wdio-dot-reporter/-/wdio-dot-reporter-0.0.10.tgz",
+ "integrity": "sha512-A0TCk2JdZEn3M1DSG9YYbNRcGdx/YRw19lTiRpgwzH4qqWkO/oRDZRmi3Snn4L2j54KKTfPalBhlOtc8fojVgg==",
+ "dev": true
+ },
+ "weak-map": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz",
+ "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=",
+ "dev": true
+ },
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
@@ -31246,6 +32021,12 @@
"integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
"dev": true
},
+ "wgxpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wgxpath/-/wgxpath-1.0.0.tgz",
+ "integrity": "sha1-7vikudVYzEla06mit1FZfs2a9pA=",
+ "dev": true
+ },
"whatwg-encoding": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
diff --git a/package.json b/package.json
index 20393fccf6..1d321ac1ec 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"lint-md": "eslint -c .eslintrc.styleguide.js ./src/ --ext .md",
"lint-css": "stylelint ./src/**/*.css",
"gemini": "gemini test",
+ "hermione": "node_modules/.bin/hermione",
"gemini-ci": "node ./gemini-ci.js",
"gemini-update": "ALL_SIZES=1 gemini update",
"sauce-connect": "cd gemini && sh ./sauce-connect.sh",
@@ -166,6 +167,7 @@
"gulp-rename": "1.2.2",
"gulp.spritesmith": "6.9.0",
"handlebars": "4.3.0",
+ "hermione": "^3.0.1",
"html-reporter": "2.12.3",
"husky": "3.1.0",
"jest": "^24.9.0",
diff --git a/prepared-tests/prepared-input.hermione.js b/prepared-tests/prepared-input.hermione.js
new file mode 100644
index 0000000000..e348697e59
--- /dev/null
+++ b/prepared-tests/prepared-input.hermione.js
@@ -0,0 +1,23 @@
+
+ var ReactDOM = require('react-dom');
+ window.describe = function() {};
+ window.it = function() {};
+
+ import React from 'react';
+
+// В шаблон мы должны вставить тестируемый компонент
+const template = TEMPLATE!!!!!!!!!!!!!!!!!!!
;
+
+describe('first-test', function() {
+ it('should first time find hermione', function() {
+ return this.browser
+ .url('/input.hermione')
+ .assertView('plain', '[data-hermione-react]');
+ });
+});
+
+
+ const elem = document.querySelector('[data-hermione-react]');
+ ReactDOM.render(template, elem);
+ elem.style.color = 'red';
+
\ No newline at end of file