[7.x] Bump jest related packages (#58095) (#69631)

* Bump jest related packages (#58095)

# Conflicts:
#	package.json
#	packages/kbn-pm/dist/index.js
#	packages/kbn-test/package.json
#	x-pack/plugins/upgrade_assistant/public/application/components/tabs/checkup/__snapshots__/checkup_tab.test.tsx.snap
#	x-pack/plugins/uptime/public/components/monitor/location_map/__tests__/location_map.test.tsx
#	yarn.lock

* Update AgentMarker.test.tsx.snap
This commit is contained in:
patrykkopycinski 2020-06-21 01:23:51 +02:00 committed by GitHub
parent 2844946be9
commit a352b5acf0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
184 changed files with 2995 additions and 2215 deletions

View file

@ -256,7 +256,7 @@
"reselect": "^4.0.0",
"resize-observer-polyfill": "^1.5.0",
"rison-node": "1.0.2",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"script-loader": "0.7.2",
"seedrandom": "^3.0.5",
"semver": "^5.5.0",
@ -341,7 +341,7 @@
"@types/history": "^4.7.3",
"@types/hoek": "^4.1.3",
"@types/inert": "^5.1.2",
"@types/jest": "24.0.19",
"@types/jest": "^25.2.3",
"@types/joi": "^13.4.2",
"@types/jquery": "^3.3.31",
"@types/js-yaml": "^3.11.1",
@ -386,6 +386,7 @@
"@types/supertest-as-promised": "^2.0.38",
"@types/tar": "^4.0.3",
"@types/testing-library__dom": "^6.10.0",
"@types/testing-library__jest-dom": "^5.7.0",
"@types/testing-library__react": "^9.1.2",
"@types/testing-library__react-hooks": "^3.1.0",
"@types/type-detect": "^4.0.1",
@ -398,8 +399,9 @@
"archiver": "^3.1.1",
"axe-core": "^3.4.1",
"babel-eslint": "^10.0.3",
"babel-jest": "^24.9.0",
"backport": "4.9.0",
"babel-jest": "^25.5.1",
"babel-plugin-istanbul": "^6.0.0",
"backport": "5.4.1",
"chai": "3.5.0",
"chance": "1.0.18",
"cheerio": "0.22.0",
@ -417,7 +419,7 @@
"eslint-plugin-ban": "^1.4.0",
"eslint-plugin-cypress": "^2.8.1",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-jest": "^23.3.0",
"eslint-plugin-jest": "^23.10.0",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-mocha": "^6.2.2",
"eslint-plugin-no-unsanitized": "^3.0.2",
@ -446,8 +448,10 @@
"intl-messageformat-parser": "^1.4.0",
"is-path-inside": "^2.1.0",
"istanbul-instrumenter-loader": "3.0.1",
"jest": "^24.9.0",
"jest-cli": "^24.9.0",
"jest": "^25.5.4",
"jest-environment-jsdom-thirteen": "^1.0.1",
"jest-circus": "^25.5.4",
"jest-cli": "^25.5.4",
"jest-raw-loader": "^1.0.1",
"jimp": "^0.9.6",
"json5": "^1.0.1",

View file

@ -23,7 +23,7 @@
"eslint-plugin-ban": "^1.4.0",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-jest": "^23.3.0",
"eslint-plugin-jest": "^23.10.0",
"eslint-plugin-mocha": "^6.2.2",
"eslint-plugin-no-unsanitized": "^3.0.2",
"eslint-plugin-prefer-object-spread": "^1.2.1",

View file

@ -18,7 +18,7 @@
"getopts": "^2.2.5",
"load-json-file": "^6.2.0",
"moment": "^2.24.0",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"tree-kill": "^1.2.2",
"tslib": "^2.0.0"
},

View file

@ -21,7 +21,7 @@ import { REPO_ROOT } from '../repo_root';
export function createAbsolutePathSerializer(rootPath: string = REPO_ROOT) {
return {
print: (value: string) => value.replace(rootPath, '<absolute path>').replace(/\\/g, '/'),
serialize: (value: string) => value.replace(rootPath, '<absolute path>').replace(/\\/g, '/'),
test: (value: any) => typeof value === 'string' && value.startsWith(rootPath),
};
}

View file

@ -31,7 +31,7 @@
"execa": "^4.0.2",
"file-loader": "^4.2.0",
"istanbul-instrumenter-loader": "^3.0.1",
"jest-diff": "^25.1.0",
"jest-diff": "^25.5.0",
"json-stable-stringify": "^1.0.1",
"loader-utils": "^1.2.3",
"node-sass": "^4.13.0",
@ -39,7 +39,7 @@
"postcss-loader": "^3.0.0",
"raw-loader": "^3.1.0",
"resolve-url-loader": "^3.1.1",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"sass-loader": "^8.0.2",
"style-loader": "^1.1.3",
"terser-webpack-plugin": "^2.1.2",

View file

@ -33,7 +33,7 @@ const MOCK_REPO_SRC = Path.resolve(__dirname, '../__fixtures__/mock_repo');
const MOCK_REPO_DIR = Path.resolve(TMP_DIR, 'mock_repo');
expect.addSnapshotSerializer({
print: (value: string) => value.split(REPO_ROOT).join('<absolute path>').replace(/\\/g, '/'),
serialize: (value: string) => value.split(REPO_ROOT).join('<absolute path>').replace(/\\/g, '/'),
test: (value: any) => typeof value === 'string' && value.includes(REPO_ROOT),
});

View file

@ -986,10 +986,10 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(24);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__["pipe"]; });
/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(25);
/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(60);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__["noop"]; });
/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(60);
/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(25);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__["identity"]; });
/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(61);
@ -2163,8 +2163,8 @@ var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return pipe; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipeFromArray", function() { return pipeFromArray; });
/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */
/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
/** PURE_IMPORTS_START _identity PURE_IMPORTS_END */
function pipe() {
var fns = [];
@ -2174,8 +2174,8 @@ function pipe() {
return pipeFromArray(fns);
}
function pipeFromArray(fns) {
if (!fns) {
return _noop__WEBPACK_IMPORTED_MODULE_0__["noop"];
if (fns.length === 0) {
return _identity__WEBPACK_IMPORTED_MODULE_0__["identity"];
}
if (fns.length === 1) {
return fns[0];
@ -2193,10 +2193,12 @@ function pipeFromArray(fns) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
/** PURE_IMPORTS_START PURE_IMPORTS_END */
function noop() { }
//# sourceMappingURL=noop.js.map
function identity(x) {
return x;
}
//# sourceMappingURL=identity.js.map
/***/ }),
@ -3848,26 +3850,34 @@ var AsapAction = /*@__PURE__*/ (function (_super) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Immediate", function() { return Immediate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TestTools", function() { return TestTools; });
/** PURE_IMPORTS_START PURE_IMPORTS_END */
var nextHandle = 1;
var tasksByHandle = {};
function runIfPresent(handle) {
var cb = tasksByHandle[handle];
if (cb) {
cb();
var RESOLVED = /*@__PURE__*/ (function () { return /*@__PURE__*/ Promise.resolve(); })();
var activeHandles = {};
function findAndClearHandle(handle) {
if (handle in activeHandles) {
delete activeHandles[handle];
return true;
}
return false;
}
var Immediate = {
setImmediate: function (cb) {
var handle = nextHandle++;
tasksByHandle[handle] = cb;
Promise.resolve().then(function () { return runIfPresent(handle); });
activeHandles[handle] = true;
RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });
return handle;
},
clearImmediate: function (handle) {
delete tasksByHandle[handle];
findAndClearHandle(handle);
},
};
var TestTools = {
pending: function () {
return Object.keys(activeHandles).length;
}
};
//# sourceMappingURL=Immediate.js.map
@ -4169,12 +4179,10 @@ var VirtualAction = /*@__PURE__*/ (function (_super) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; });
/** PURE_IMPORTS_START PURE_IMPORTS_END */
function identity(x) {
return x;
}
//# sourceMappingURL=identity.js.map
function noop() { }
//# sourceMappingURL=noop.js.map
/***/ }),
@ -4728,17 +4736,17 @@ __webpack_require__.r(__webpack_exports__);
function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {
if (destination === void 0) {
destination = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__["InnerSubscriber"](outerSubscriber, outerValue, outerIndex);
function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {
if (innerSubscriber === void 0) {
innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__["InnerSubscriber"](outerSubscriber, outerValue, outerIndex);
}
if (destination.closed) {
if (innerSubscriber.closed) {
return undefined;
}
if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]) {
return result.subscribe(destination);
return result.subscribe(innerSubscriber);
}
return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(result)(destination);
return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(result)(innerSubscriber);
}
//# sourceMappingURL=subscribeToResult.js.map
@ -5010,7 +5018,7 @@ function concatAll() {
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return mergeAll; });
/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */
@ -5108,10 +5116,13 @@ var MergeMapSubscriber = /*@__PURE__*/ (function (_super) {
this._innerSub(result, value, index);
};
MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined);
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, value, index);
var destination = this.destination;
destination.add(innerSubscriber);
Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber);
var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, undefined, undefined, innerSubscriber);
if (innerSubscription !== innerSubscriber) {
destination.add(innerSubscription);
}
};
MergeMapSubscriber.prototype._complete = function () {
this.hasCompleted = true;
@ -5607,7 +5618,7 @@ function fromEventPattern(addHandler, removeHandler, resultSelector) {
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return generate; });
/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */
@ -5866,7 +5877,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return NEVER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "never", function() { return never; });
/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);
/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */
@ -51259,7 +51270,10 @@ var CatchSubscriber = /*@__PURE__*/ (function (_super) {
this._unsubscribeAndRecycle();
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined);
this.add(innerSubscriber);
Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber);
var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber);
if (innerSubscription !== innerSubscriber) {
this.add(innerSubscription);
}
}
};
return CatchSubscriber;
@ -52483,10 +52497,13 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) {
this._innerSub(result, value, index);
};
ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined);
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, value, index);
var destination = this.destination;
destination.add(innerSubscriber);
Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber);
var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber);
if (innerSubscription !== innerSubscriber) {
destination.add(innerSubscription);
}
};
ExhaustMapSubscriber.prototype._complete = function () {
this.hasCompleted = true;
@ -52771,7 +52788,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(420);
/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(410);
/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(419);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */
@ -52879,7 +52896,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(433);
/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(419);
/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(410);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */
@ -53305,10 +53322,13 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) {
}
};
MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined);
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, value, index);
var destination = this.destination;
destination.add(innerSubscriber);
Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber);
var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, undefined, undefined, innerSubscriber);
if (innerSubscription !== innerSubscriber) {
destination.add(innerSubscription);
}
};
MergeScanSubscriber.prototype._complete = function () {
this.hasCompleted = true;
@ -53495,7 +53515,10 @@ var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) {
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__["InnerSubscriber"](this, undefined, undefined);
var destination = this.destination;
destination.add(innerSubscriber);
Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, next, undefined, undefined, innerSubscriber);
var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, next, undefined, undefined, innerSubscriber);
if (innerSubscription !== innerSubscriber) {
destination.add(innerSubscription);
}
}
else {
this.destination.complete();
@ -54333,6 +54356,7 @@ function shareReplayOperator(_a) {
},
complete: function () {
isComplete = true;
subscription = undefined;
subject.complete();
},
});
@ -54572,7 +54596,11 @@ var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) {
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](_this, undefined, undefined);
_this.add(innerSubscriber);
_this.innerSubscription = innerSubscriber;
Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(_this, notifier, undefined, undefined, innerSubscriber);
var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(_this, notifier, undefined, undefined, innerSubscriber);
if (innerSubscription !== innerSubscriber) {
_this.add(innerSubscription);
_this.innerSubscription = innerSubscription;
}
return _this;
}
SkipUntilSubscriber.prototype._next = function (value) {
@ -54781,7 +54809,7 @@ var SubscribeOnObservable = /*@__PURE__*/ (function (_super) {
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; });
/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(471);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);
/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */
@ -54851,10 +54879,13 @@ var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {
if (innerSubscription) {
innerSubscription.unsubscribe();
}
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined);
var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, value, index);
var destination = this.destination;
destination.add(innerSubscriber);
this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber);
this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber);
if (this.innerSubscription !== innerSubscriber) {
destination.add(this.innerSubscription);
}
};
SwitchMapSubscriber.prototype._complete = function () {
var innerSubscription = this.innerSubscription;
@ -55025,7 +55056,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return tap; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60);
/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */

View file

@ -53,7 +53,7 @@
"ora": "^1.4.0",
"prettier": "^2.0.5",
"read-pkg": "^5.2.0",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"spawn-sync": "^1.0.15",
"string-replace-loader": "^2.2.0",
"strip-ansi": "^4.0.0",

View file

@ -127,13 +127,13 @@ test('handles dependencies of dependencies', async () => {
expect(mockInstallInDir.mock.calls).toMatchSnapshot('install in dir');
expect(logWriter.messages).toMatchInlineSnapshot(`
Array [
" info [kibana] running yarn",
info [kibana] running yarn,
"",
"",
" info [bar] running yarn",
info [bar] running yarn,
"",
"",
" info [foo] running yarn",
info [foo] running yarn,
"",
"",
]
@ -174,7 +174,7 @@ test('does not run installer if no deps in package', async () => {
expect(mockInstallInDir.mock.calls).toMatchSnapshot('install in dir');
expect(logWriter.messages).toMatchInlineSnapshot(`
Array [
" info [kibana] running yarn",
info [kibana] running yarn,
"",
"",
]

View file

@ -20,9 +20,9 @@
import hasAnsi from 'has-ansi';
import stripAnsi from 'strip-ansi';
export const stripAnsiSnapshotSerializer = {
print(value: string, serialize: (val: string) => string) {
return serialize(stripAnsi(value));
export const stripAnsiSnapshotSerializer: jest.SnapshotSerializerPlugin = {
serialize(value: string) {
return stripAnsi(value);
},
test(value: any) {

View file

@ -1,29 +1,29 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`handles projects outside root folder 1`] = `
"kibana
kibana
├── packages
│ ├── bar
│ └── foo
└── ../plugins
├── baz
├── quux
└── zorge"
└── zorge
`;
exports[`handles projects with root folder 1`] = `
"kibana
kibana
└── packages
├── bar
└── foo"
└── foo
`;
exports[`handles projects within projects outside root folder 1`] = `
"kibana
kibana
├── packages
│ ├── bar
│ └── foo
└── ../kibana-extra/additional_projects (with-additional-projects)
├── packages/baz
└── plugins/quux"
└── plugins/quux
`;

View file

@ -115,9 +115,9 @@ describe('bin script points to a file', () => {
expect(getFsMockCalls()).toMatchSnapshot('fs module calls');
expect(logWriter.messages).toMatchInlineSnapshot(`
Array [
" debg Linking package executables",
" debg [foo] bar -> ../bar/bin/bar.js",
" debg [baz] bar -> ../bar/bin/bar.js",
debg Linking package executables,
debg [foo] bar -> ../bar/bin/bar.js,
debg [baz] bar -> ../bar/bin/bar.js,
]
`);
});

View file

@ -17,7 +17,7 @@
},
"homepage": "https://github.com/jbudz/spec-to-console#readme",
"devDependencies": {
"jest": "^24.9.0",
"jest": "^25.5.4",
"prettier": "^2.0.5"
},
"dependencies": {

View file

@ -23,7 +23,7 @@
"mini-css-extract-plugin": "0.7.0",
"normalize-path": "3.0.0",
"react-docgen-typescript-loader": "3.1.0",
"rxjs": "6.5.2",
"rxjs": "6.5.5",
"serve-static": "1.14.1",
"styled-components": "^5.1.0",
"webpack": "^4.41.5"

View file

@ -28,7 +28,7 @@
"parse-link-header": "^1.0.1",
"puppeteer": "^3.3.0",
"strip-ansi": "^5.2.0",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"tar-fs": "^1.16.3",
"tmp": "^0.1.0",
"xml2js": "^0.4.22",

View file

@ -26,7 +26,7 @@ import { createPatch } from 'diff';
// turns out Jest can't encode xml diffs in their JUnit reports...
expect.addSnapshotSerializer({
test: (v) => typeof v === 'string' && (v.includes('<') || v.includes('>')),
print: (v) => v.replace(/</g, '').replace(/>/g, '').replace(/^\s+$/gm, ''),
serialize: (v) => v.replace(/</g, '').replace(/>/g, '').replace(/^\s+$/gm, ''),
});
jest.mock('fs', () => {

View file

@ -45,18 +45,34 @@ describe('KuiTextInput', () => {
});
describe('autoFocus', () => {
/* eslint-disable no-console */
// Silence until enzyme fixed https://github.com/enzymejs/enzyme/issues/2337
const originalError = console.error;
beforeAll(() => {
console.error = jest.fn();
});
afterAll(() => {
console.error = originalError;
});
/* eslint-enable no-console */
test('sets focus on the element', () => {
const component = mount(
<KuiTextInput autoFocus onChange={() => {}} data-test-subj="input" />
<KuiTextInput autoFocus={true} onChange={() => {}} data-test-subj="input" />,
{ attachTo: document.body }
);
expect(findTestSubject(component, 'input').getDOMNode()).toBe(document.activeElement);
component.unmount();
});
test('does not focus the element by default', () => {
const component = mount(<KuiTextInput onChange={() => {}} data-test-subj="input" />);
const component = mount(<KuiTextInput onChange={() => {}} data-test-subj="input" />, {
attachTo: document.body,
});
expect(findTestSubject(component, 'input').getDOMNode()).not.toBe(document.activeElement);
component.unmount();
});
});

View file

@ -29,7 +29,7 @@
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
"regenerator-runtime": "^0.13.3",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"symbol-observable": "^1.2.0",
"whatwg-fetch": "^3.0.0"
},

View file

@ -37,7 +37,11 @@ jest.doMock('history', () => ({
}));
export const parseAppUrlMock = jest.fn();
jest.doMock('./utils', () => ({
...jest.requireActual('./utils'),
parseAppUrl: parseAppUrlMock,
}));
jest.doMock('./utils', () => {
const original = jest.requireActual('./utils');
return {
...original,
parseAppUrl: parseAppUrlMock,
};
});

View file

@ -147,44 +147,52 @@ describe('ApplicationService', () => {
});
});
it('redirects to full path when navigating to legacy app', async () => {
const redirectTo = jest.fn();
const reloadSpy = jest.spyOn(window.location, 'reload').mockImplementation(() => {});
// In the real application, we use a BrowserHistory instance configured with `basename`. However, in tests we must
// use MemoryHistory which does not support `basename`. In order to emulate this behavior, we will wrap this
// instance with a ScopedHistory configured with a basepath.
history.push(setupDeps.http.basePath.get()); // ScopedHistory constructor will fail if underlying history is not currently at basePath.
const { register, registerLegacyApp } = service.setup({
...setupDeps,
redirectTo,
history: new ScopedHistory(history, setupDeps.http.basePath.get()),
describe('redirects', () => {
beforeAll(() => {
Object.defineProperty(window, 'location', {
value: {
reload: jest.fn(),
},
});
});
register(Symbol(), {
id: 'app1',
title: 'App1',
mount: ({ onAppLeave }: AppMountParameters) => {
onAppLeave((actions) => actions.default());
return () => undefined;
},
it('to full path when navigating to legacy app', async () => {
const redirectTo = jest.fn();
// In the real application, we use a BrowserHistory instance configured with `basename`. However, in tests we must
// use MemoryHistory which does not support `basename`. In order to emulate this behavior, we will wrap this
// instance with a ScopedHistory configured with a basepath.
history.push(setupDeps.http.basePath.get()); // ScopedHistory constructor will fail if underlying history is not currently at basePath.
const { register, registerLegacyApp } = service.setup({
...setupDeps,
redirectTo,
history: new ScopedHistory(history, setupDeps.http.basePath.get()),
});
register(Symbol(), {
id: 'app1',
title: 'App1',
mount: ({ onAppLeave }: AppMountParameters) => {
onAppLeave((actions) => actions.default());
return () => undefined;
},
});
registerLegacyApp({
id: 'myLegacyTestApp',
appUrl: '/app/myLegacyTestApp',
title: 'My Legacy Test App',
});
const { navigateToApp, getComponent } = await service.start(startDeps);
update = createRenderer(getComponent());
await navigate('/test/app/app1');
await act(() => navigateToApp('myLegacyTestApp', { path: '#/some-path' }));
expect(redirectTo).toHaveBeenCalledWith('/test/app/myLegacyTestApp#/some-path');
expect(window.location.reload).toHaveBeenCalled();
});
registerLegacyApp({
id: 'myLegacyTestApp',
appUrl: '/app/myLegacyTestApp',
title: 'My Legacy Test App',
});
const { navigateToApp, getComponent } = await service.start(startDeps);
update = createRenderer(getComponent());
await navigate('/test/app/app1');
await act(() => navigateToApp('myLegacyTestApp', { path: '#/some-path' }));
expect(redirectTo).toHaveBeenCalledWith('/test/app/myLegacyTestApp#/some-path');
expect(reloadSpy).toHaveBeenCalled();
reloadSpy.mockRestore();
});
describe('leaving an application that registered an app leave handler', () => {

View file

@ -410,6 +410,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
>
<div
class="euiFlexItem euiFlexItem--flexGrowZero"
style="flex-shrink: 0;"
>
<div
class="euiCollapsibleNavGroup euiCollapsibleNavGroup--light eui-yScroll"
@ -1054,6 +1055,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
>
<div
class="euiFlexItem euiFlexItem--flexGrowZero"
style="flex-shrink: 0;"
>
<div
class="euiCollapsibleNavGroup euiCollapsibleNavGroup--light eui-yScroll"
@ -1811,7 +1813,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -1828,7 +1830,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--light euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-recentlyViewed"
@ -2054,7 +2056,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -2079,7 +2081,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-kibana"
@ -2341,7 +2343,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -2366,7 +2368,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-observability"
@ -2589,7 +2591,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -2614,7 +2616,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-security"
@ -2797,7 +2799,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -2814,7 +2816,7 @@ exports[`CollapsibleNav renders links grouped by category 1`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-management"
@ -3783,7 +3785,7 @@ exports[`CollapsibleNav renders the default nav 2`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -3800,7 +3802,7 @@ exports[`CollapsibleNav renders the default nav 2`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--light euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-recentlyViewed"
@ -4377,6 +4379,7 @@ exports[`CollapsibleNav renders the default nav 3`] = `
>
<div
class="euiFlexItem euiFlexItem--flexGrowZero"
style="flex-shrink: 0;"
>
<div
class="euiCollapsibleNavGroup euiCollapsibleNavGroup--light eui-yScroll"
@ -4566,6 +4569,7 @@ exports[`CollapsibleNav renders the default nav 3`] = `
>
<div
class="euiFlexItem euiFlexItem--flexGrowZero"
style="flex-shrink: 0;"
>
<div
class="euiCollapsibleNavGroup euiCollapsibleNavGroup--light eui-yScroll"
@ -4868,7 +4872,7 @@ exports[`CollapsibleNav renders the default nav 3`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -4885,7 +4889,7 @@ exports[`CollapsibleNav renders the default nav 3`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--light euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-recentlyViewed"

View file

@ -4302,7 +4302,7 @@ exports[`Header renders 2`] = `
<EuiPopover
anchorPosition="downRight"
button={
<ForwardRef
<EuiHeaderSectionItemButton
aria-expanded={false}
aria-haspopup="true"
aria-label="Help menu"
@ -4312,7 +4312,7 @@ exports[`Header renders 2`] = `
size="m"
type="help"
/>
</ForwardRef>
</EuiHeaderSectionItemButton>
}
closePopover={[Function]}
data-test-subj="helpMenuButton"
@ -8405,7 +8405,7 @@ exports[`Header renders 3`] = `
<EuiPopover
anchorPosition="downRight"
button={
<ForwardRef
<EuiHeaderSectionItemButton
aria-expanded={false}
aria-haspopup="true"
aria-label="Help menu"
@ -8415,7 +8415,7 @@ exports[`Header renders 3`] = `
size="m"
type="help"
/>
</ForwardRef>
</EuiHeaderSectionItemButton>
}
closePopover={[Function]}
data-test-subj="helpMenuButton"
@ -8849,6 +8849,7 @@ exports[`Header renders 3`] = `
>
<div
class="euiFlexItem euiFlexItem--flexGrowZero"
style="flex-shrink: 0;"
>
<div
class="euiCollapsibleNavGroup euiCollapsibleNavGroup--light eui-yScroll"
@ -9081,6 +9082,7 @@ exports[`Header renders 3`] = `
>
<div
class="euiFlexItem euiFlexItem--flexGrowZero"
style="flex-shrink: 0;"
>
<div
class="euiCollapsibleNavGroup euiCollapsibleNavGroup--light eui-yScroll"
@ -9426,7 +9428,7 @@ exports[`Header renders 3`] = `
arrowDisplay="right"
buttonClassName="euiCollapsibleNavGroup__heading"
buttonContent={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="m"
responsive={false}
@ -9443,7 +9445,7 @@ exports[`Header renders 3`] = `
</h3>
</EuiTitle>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
className="euiCollapsibleNavGroup euiCollapsibleNavGroup--light euiCollapsibleNavGroup--withHeading"
data-test-subj="collapsibleNavGroup-recentlyViewed"
@ -13579,7 +13581,7 @@ exports[`Header renders 4`] = `
<EuiPopover
anchorPosition="downRight"
button={
<ForwardRef
<EuiHeaderSectionItemButton
aria-expanded={false}
aria-haspopup="true"
aria-label="Help menu"
@ -13589,7 +13591,7 @@ exports[`Header renders 4`] = `
size="m"
type="help"
/>
</ForwardRef>
</EuiHeaderSectionItemButton>
}
closePopover={[Function]}
data-test-subj="helpMenuButton"

View file

@ -35,7 +35,6 @@ describe('url overflow detection', () => {
let history: History;
let toasts: jest.Mocked<IToasts>;
let uiSettings: jest.Mocked<IUiSettingsClient>;
let assignSpy: jest.SpyInstance<void, [string]>;
let unlisten: any;
beforeEach(() => {
@ -44,8 +43,11 @@ describe('url overflow detection', () => {
toasts = notificationServiceMock.createStartContract().toasts;
uiSettings = uiSettingsServiceMock.createStartContract();
// No-op mock impl to avoid jsdom warning about navigation not being implemented
assignSpy = jest.spyOn(window.location, 'assign').mockImplementation(() => {});
Object.defineProperty(window, 'location', {
value: {
assign: jest.fn(),
},
});
unlisten = setupUrlOverflowDetection({
basePath,
@ -57,19 +59,19 @@ describe('url overflow detection', () => {
afterEach(() => {
unlisten();
assignSpy.mockRestore();
jest.clearAllMocks();
});
it('redirects to error page when URL is too long', () => {
history.push(longUrl);
expect(assignSpy).toHaveBeenCalledWith('/app/error?errorType=urlOverflow');
expect(window.location.assign).toHaveBeenCalledWith('/app/error?errorType=urlOverflow');
});
it('displays a toast if URL exceeds warning threshold', () => {
const warningUrl = '/' + 'a'.repeat(URL_WARNING_LENGTH);
history.push(warningUrl);
expect(history.location.pathname).toEqual(warningUrl);
expect(assignSpy).not.toHaveBeenCalled();
expect(window.location.assign).not.toHaveBeenCalled();
expect(toasts.addWarning).toHaveBeenCalledWith(
expect.objectContaining({
title: 'The URL is big and Kibana might stop working',
@ -102,7 +104,7 @@ describe('url overflow detection', () => {
it('does not redirect or show warning if URL is not too long', () => {
history.push('/regular-length-url');
expect(history.location.pathname).toEqual('/regular-length-url');
expect(assignSpy).not.toHaveBeenCalled();
expect(window.location.assign).not.toHaveBeenCalled();
expect(toasts.addWarning).not.toHaveBeenCalled();
});
@ -110,7 +112,7 @@ describe('url overflow detection', () => {
uiSettings.get.mockReturnValue(true);
history.push(longUrl);
expect(history.location.pathname).toEqual(longUrl);
expect(assignSpy).not.toHaveBeenCalled();
expect(window.location.assign).not.toHaveBeenCalled();
expect(toasts.addWarning).not.toHaveBeenCalled();
});
@ -121,7 +123,7 @@ describe('url overflow detection', () => {
history.push(longErrorUrl);
expect(history.location.pathname).toEqual('/app/error');
expect(history.location.search).toEqual(`?q=${longQueryParam}`);
expect(assignSpy).not.toHaveBeenCalled();
expect(window.location.assign).not.toHaveBeenCalled();
expect(toasts.addWarning).not.toHaveBeenCalled();
});
});

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering render matches snapshot 1`] = `
exports[`FatalErrorsScreen rendering render matches snapshot 1`] = `
<EuiPage
style={
Object {

View file

@ -25,112 +25,123 @@ import { mountWithIntl, shallowWithIntl } from 'test_utils/enzyme_helpers';
import { FatalErrorsScreen } from './fatal_errors_screen';
const errorInfoFoo = {
message: 'foo',
stack: 'Error: foo\n stack...foo.js:1:1',
};
const errorInfoBar = {
message: 'bar',
stack: 'Error: bar\n stack...bar.js:1:1',
};
describe('FatalErrorsScreen', () => {
const errorInfoFoo = {
message: 'foo',
stack: 'Error: foo\n stack...foo.js:1:1',
};
const errorInfoBar = {
message: 'bar',
stack: 'Error: bar\n stack...bar.js:1:1',
};
const defaultProps = {
buildNumber: 123,
kibanaVersion: 'bar',
errorInfo$: Rx.of(errorInfoFoo, errorInfoBar),
};
const defaultProps = {
buildNumber: 123,
kibanaVersion: 'bar',
errorInfo$: Rx.of(errorInfoFoo, errorInfoBar),
};
const noop = () => {
// noop
};
const noop = () => {
// noop
};
afterEach(() => {
jest.restoreAllMocks();
});
describe('reloading', () => {
it('refreshes the page if a `hashchange` event is emitted', () => {
const addEventListenerSpy = jest.spyOn(window, 'addEventListener');
const locationReloadSpy = jest.spyOn(window.location, 'reload').mockImplementation(noop);
shallowWithIntl(<FatalErrorsScreen {...defaultProps} />);
expect(addEventListenerSpy).toHaveBeenCalledTimes(1);
expect(addEventListenerSpy).toHaveBeenCalledWith('hashchange', expect.any(Function), undefined);
expect(locationReloadSpy).not.toHaveBeenCalled();
const [, handler] = addEventListenerSpy.mock.calls[0];
(handler as jest.Mock)();
expect(locationReloadSpy).toHaveBeenCalledTimes(1);
});
});
describe('rendering', () => {
it('render matches snapshot', () => {
expect(shallowWithIntl(<FatalErrorsScreen {...defaultProps} />)).toMatchSnapshot();
});
it('rerenders when errorInfo$ emits more errors', () => {
const errorInfo$ = new Rx.ReplaySubject<typeof errorInfoFoo>();
const el = shallowWithIntl(<FatalErrorsScreen {...defaultProps} errorInfo$={errorInfo$} />);
expect(el.find(EuiCallOut)).toHaveLength(0);
errorInfo$.next(errorInfoFoo);
el.update(); // allow setState() to cause a render
expect(el.find(EuiCallOut)).toHaveLength(1);
errorInfo$.next(errorInfoBar);
el.update(); // allow setState() to cause a render
expect(el.find(EuiCallOut)).toHaveLength(2);
});
});
describe('buttons', () => {
beforeAll(() => {
Object.assign(window, {
localStorage: {
clear: jest.fn(),
},
sessionStorage: {
clear: jest.fn(),
Object.defineProperty(window, 'location', {
value: {
reload: jest.fn(),
},
});
});
afterAll(() => {
delete (window as any).localStorage;
delete (window as any).sessionStorage;
});
describe('reloading', () => {
it('refreshes the page if a `hashchange` event is emitted', () => {
const addEventListenerSpy = jest.spyOn(window, 'addEventListener');
describe('"Clear your session"', () => {
it('clears localStorage, sessionStorage, the location.hash, and reloads the page', () => {
window.location.hash = '/foo/bar';
jest.spyOn(window.location, 'reload').mockImplementation(noop);
shallowWithIntl(<FatalErrorsScreen {...defaultProps} />);
expect(addEventListenerSpy).toHaveBeenCalledTimes(1);
expect(addEventListenerSpy).toHaveBeenCalledWith(
'hashchange',
expect.any(Function),
undefined
);
const el = mountWithIntl(<FatalErrorsScreen {...defaultProps} />);
const button = el.find('button').find(testSubjSelector('clearSession'));
button.simulate('click');
expect(window.localStorage.clear).toHaveBeenCalled();
expect(window.sessionStorage.clear).toHaveBeenCalled();
expect(window.location.reload).toHaveBeenCalled();
expect(window.location.hash).toBe('');
expect(window.location.reload).not.toHaveBeenCalled();
const [, handler] = (window as any).addEventListener.mock.calls[0];
(handler as jest.Mock)();
expect(window.location.reload).toHaveBeenCalledTimes(1);
});
});
describe('"Go back"', () => {
it('calls window.history.back()', () => {
jest.spyOn(window.history, 'back').mockImplementation(noop);
describe('rendering', () => {
it('render matches snapshot', () => {
expect(shallowWithIntl(<FatalErrorsScreen {...defaultProps} />)).toMatchSnapshot();
});
const el = mountWithIntl(<FatalErrorsScreen {...defaultProps} />);
const button = el.find('button').find(testSubjSelector('goBack'));
button.simulate('click');
it('rerenders when errorInfo$ emits more errors', () => {
const errorInfo$ = new Rx.ReplaySubject<typeof errorInfoFoo>();
expect(window.history.back).toHaveBeenCalled();
const el = shallowWithIntl(<FatalErrorsScreen {...defaultProps} errorInfo$={errorInfo$} />);
expect(el.find(EuiCallOut)).toHaveLength(0);
errorInfo$.next(errorInfoFoo);
el.update(); // allow setState() to cause a render
expect(el.find(EuiCallOut)).toHaveLength(1);
errorInfo$.next(errorInfoBar);
el.update(); // allow setState() to cause a render
expect(el.find(EuiCallOut)).toHaveLength(2);
});
});
describe('buttons', () => {
beforeAll(() => {
delete (window as any).localStorage;
delete (window as any).sessionStorage;
Object.assign(window, {
localStorage: {
clear: jest.fn(),
},
sessionStorage: {
clear: jest.fn(),
},
});
});
afterAll(() => {
delete (window as any).localStorage;
delete (window as any).sessionStorage;
});
describe('"Clear your session"', () => {
it('clears localStorage, sessionStorage, the location.hash, and reloads the page', () => {
window.location.hash = '/foo/bar';
jest.spyOn(window.location, 'reload').mockImplementation(noop);
const el = mountWithIntl(<FatalErrorsScreen {...defaultProps} />);
const button = el.find('button').find(testSubjSelector('clearSession'));
button.simulate('click');
expect(window.localStorage.clear).toHaveBeenCalled();
expect(window.sessionStorage.clear).toHaveBeenCalled();
expect(window.location.reload).toHaveBeenCalled();
expect(window.location.hash).toBe('');
});
});
describe('"Go back"', () => {
it('calls window.history.back()', () => {
jest.spyOn(window.history, 'back').mockImplementation(noop);
const el = mountWithIntl(<FatalErrorsScreen {...defaultProps} />);
const button = el.find('button').find(testSubjSelector('goBack'));
button.simulate('click');
expect(window.history.back).toHaveBeenCalled();
});
});
});
});

View file

@ -18,11 +18,14 @@
*/
export const MockClient = jest.fn();
jest.mock('elasticsearch', () => ({
// Jest types don't include `requireActual` right now.
...jest.requireActual('elasticsearch'),
Client: MockClient,
}));
jest.mock('elasticsearch', () => {
const original = jest.requireActual('elasticsearch');
return {
...original,
Client: MockClient,
};
});
export const MockScopedClusterClient = jest.fn();
jest.mock('./scoped_cluster_client', () => ({

View file

@ -118,7 +118,7 @@ describe('pollEsNodesVersion', () => {
});
beforeEach(() => {
callWithInternalUser.mockClear();
callWithInternalUser.mockReset();
});
it('returns iscCompatible=false and keeps polling when a poll request throws', (done) => {

View file

@ -24,10 +24,14 @@ import { CspConfig } from '../csp';
const validHostnames = ['www.example.com', '8.8.8.8', '::1', 'localhost'];
const invalidHostname = 'asdf$%^';
jest.mock('os', () => ({
...jest.requireActual('os'),
hostname: () => 'kibana-hostname',
}));
jest.mock('os', () => {
const original = jest.requireActual('os');
return {
...original,
hostname: () => 'kibana-hostname',
};
});
test('has defaults for config', () => {
const httpSchema = config.schema;

View file

@ -17,11 +17,14 @@
* under the License.
*/
jest.mock('fs', () => ({
// Hapi Inert patches native methods
...jest.requireActual('fs'),
readFileSync: jest.fn(),
}));
jest.mock('fs', () => {
const original = jest.requireActual('fs');
return {
// Hapi Inert patches native methods
...original,
readFileSync: jest.fn(),
};
});
import supertest from 'supertest';
import { Request, ResponseToolkit } from 'hapi';

View file

@ -24,17 +24,17 @@ exports[`\`format()\` correctly formats record with full pattern. 5`] = `"[2012-
exports[`\`format()\` correctly formats record with full pattern. 6`] = `"[2012-02-01T14:30:22.011Z][TRACE][context-6] message-6"`;
exports[`\`format()\` correctly formats record with highlighting. 1`] = `"[2012-02-01T14:30:22.011Z][FATAL][context-1] Some error stack"`;
exports[`\`format()\` correctly formats record with highlighting. 1`] = `[2012-02-01T14:30:22.011Z][FATAL][context-1] Some error stack`;
exports[`\`format()\` correctly formats record with highlighting. 2`] = `"[2012-02-01T14:30:22.011Z][ERROR][context-2] message-2"`;
exports[`\`format()\` correctly formats record with highlighting. 2`] = `[2012-02-01T14:30:22.011Z][ERROR][context-2] message-2`;
exports[`\`format()\` correctly formats record with highlighting. 3`] = `"[2012-02-01T14:30:22.011Z][WARN ][context-3] message-3"`;
exports[`\`format()\` correctly formats record with highlighting. 3`] = `[2012-02-01T14:30:22.011Z][WARN ][context-3] message-3`;
exports[`\`format()\` correctly formats record with highlighting. 4`] = `"[2012-02-01T14:30:22.011Z][DEBUG][context-4] message-4"`;
exports[`\`format()\` correctly formats record with highlighting. 4`] = `[2012-02-01T14:30:22.011Z][DEBUG][context-4] message-4`;
exports[`\`format()\` correctly formats record with highlighting. 5`] = `"[2012-02-01T14:30:22.011Z][INFO ][context-5] message-5"`;
exports[`\`format()\` correctly formats record with highlighting. 5`] = `[2012-02-01T14:30:22.011Z][INFO ][context-5] message-5`;
exports[`\`format()\` correctly formats record with highlighting. 6`] = `"[2012-02-01T14:30:22.011Z][TRACE][context-6] message-6"`;
exports[`\`format()\` correctly formats record with highlighting. 6`] = `[2012-02-01T14:30:22.011Z][TRACE][context-6] message-6`;
exports[`allows specifying the PID in custom pattern 1`] = `"5355-context-1-Some error stack"`;

View file

@ -87,31 +87,31 @@ describe('getNonExistingReferenceAsKeys()', () => {
const result = await getNonExistingReferenceAsKeys(savedObjects, savedObjectsClient);
expect(result).toEqual([]);
expect(savedObjectsClient.bulkGet).toMatchInlineSnapshot(`
[MockFunction] {
"calls": Array [
Array [
Array [
Object {
"fields": Array [
"id",
[MockFunction] {
"calls": Array [
Array [
Array [
Object {
"fields": Array [
"id",
],
"id": "1",
"type": "index-pattern",
},
],
Object {
"namespace": undefined,
},
],
"id": "1",
"type": "index-pattern",
},
],
Object {
"namespace": undefined,
},
],
],
"results": Array [
Object {
"type": "return",
"value": Promise {},
},
],
}
`);
],
"results": Array [
Object {
"type": "return",
"value": Promise {},
},
],
}
`);
});
test(`doesn't handle saved object types outside of ENFORCED_TYPES`, async () => {
@ -186,38 +186,38 @@ describe('getNonExistingReferenceAsKeys()', () => {
const result = await getNonExistingReferenceAsKeys(savedObjects, savedObjectsClient);
expect(result).toEqual(['index-pattern:1', 'search:3']);
expect(savedObjectsClient.bulkGet).toMatchInlineSnapshot(`
[MockFunction] {
"calls": Array [
Array [
Array [
Object {
"fields": Array [
"id",
[MockFunction] {
"calls": Array [
Array [
Array [
Object {
"fields": Array [
"id",
],
"id": "1",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "3",
"type": "search",
},
],
Object {
"namespace": undefined,
},
],
"id": "1",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "3",
"type": "search",
},
],
Object {
"namespace": undefined,
},
],
],
"results": Array [
Object {
"type": "return",
"value": Promise {},
},
],
}
`);
],
"results": Array [
Object {
"type": "return",
"value": Promise {},
},
],
}
`);
});
});
@ -231,11 +231,11 @@ describe('validateReferences()', () => {
test('returns empty when no objects are passed in', async () => {
const result = await validateReferences([], savedObjectsClient);
expect(result).toMatchInlineSnapshot(`
Object {
"errors": Array [],
"filteredObjects": Array [],
}
`);
Object {
"errors": Array [],
"filteredObjects": Array [],
}
`);
expect(savedObjectsClient.bulkGet).toHaveBeenCalledTimes(0);
});
@ -343,111 +343,111 @@ Object {
];
const result = await validateReferences(savedObjects, savedObjectsClient);
expect(result).toMatchInlineSnapshot(`
Object {
"errors": Array [
Object {
"error": Object {
"blocking": Array [],
"references": Array [
Object {
"id": "3",
"type": "index-pattern",
},
],
"type": "missing_references",
},
"id": "2",
"title": "My Visualization 2",
"type": "visualization",
},
Object {
"error": Object {
"blocking": Array [],
"references": Array [
Object {
"id": "5",
"type": "index-pattern",
},
Object {
"id": "6",
"type": "index-pattern",
},
Object {
"id": "7",
"type": "search",
},
],
"type": "missing_references",
},
"id": "4",
"title": "My Visualization 4",
"type": "visualization",
},
],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "1",
"references": Array [],
"type": "visualization",
},
],
}
`);
expect(savedObjectsClient.bulkGet).toMatchInlineSnapshot(`
[MockFunction] {
"calls": Array [
Array [
Array [
Object {
"fields": Array [
"id",
],
"id": "3",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "5",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "6",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "7",
"type": "search",
},
Object {
"fields": Array [
"id",
],
"id": "8",
"type": "search",
},
],
Object {
"namespace": undefined,
},
],
],
"results": Array [
Object {
"type": "return",
"value": Promise {},
},
],
}
`);
"errors": Array [
Object {
"error": Object {
"blocking": Array [],
"references": Array [
Object {
"id": "3",
"type": "index-pattern",
},
],
"type": "missing_references",
},
"id": "2",
"title": "My Visualization 2",
"type": "visualization",
},
Object {
"error": Object {
"blocking": Array [],
"references": Array [
Object {
"id": "5",
"type": "index-pattern",
},
Object {
"id": "6",
"type": "index-pattern",
},
Object {
"id": "7",
"type": "search",
},
],
"type": "missing_references",
},
"id": "4",
"title": "My Visualization 4",
"type": "visualization",
},
],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "1",
"references": Array [],
"type": "visualization",
},
],
}
`);
expect(savedObjectsClient.bulkGet).toMatchInlineSnapshot(`
[MockFunction] {
"calls": Array [
Array [
Array [
Object {
"fields": Array [
"id",
],
"id": "3",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "5",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "6",
"type": "index-pattern",
},
Object {
"fields": Array [
"id",
],
"id": "7",
"type": "search",
},
Object {
"fields": Array [
"id",
],
"id": "8",
"type": "search",
},
],
Object {
"namespace": undefined,
},
],
],
"results": Array [
Object {
"type": "return",
"value": Promise {},
},
],
}
`);
});
test(`doesn't return errors when references exist in Elasticsearch`, async () => {
@ -477,24 +477,24 @@ Object {
];
const result = await validateReferences(savedObjects, savedObjectsClient);
expect(result).toMatchInlineSnapshot(`
Object {
"errors": Array [],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "2",
"references": Array [
Object {
"id": "1",
"name": "ref_0",
"type": "index-pattern",
},
],
"type": "visualization",
},
],
}
`);
Object {
"errors": Array [],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "2",
"references": Array [
Object {
"id": "1",
"name": "ref_0",
"type": "index-pattern",
},
],
"type": "visualization",
},
],
}
`);
expect(savedObjectsClient.bulkGet).toHaveBeenCalledTimes(1);
});
@ -521,30 +521,30 @@ Object {
];
const result = await validateReferences(savedObjects, savedObjectsClient);
expect(result).toMatchInlineSnapshot(`
Object {
"errors": Array [],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "1",
"references": Array [],
"type": "index-pattern",
},
Object {
"attributes": Object {},
"id": "2",
"references": Array [
Object {
"id": "1",
"name": "ref_0",
"type": "index-pattern",
},
],
"type": "visualization",
},
],
}
`);
Object {
"errors": Array [],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "1",
"references": Array [],
"type": "index-pattern",
},
Object {
"attributes": Object {},
"id": "2",
"references": Array [
Object {
"id": "1",
"name": "ref_0",
"type": "index-pattern",
},
],
"type": "visualization",
},
],
}
`);
expect(savedObjectsClient.bulkGet).toHaveBeenCalledTimes(0);
});
@ -570,29 +570,29 @@ Object {
];
const result = await validateReferences(savedObjects, savedObjectsClient);
expect(result).toMatchInlineSnapshot(`
Object {
"errors": Array [],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "1",
"references": Array [
Object {
"id": "2",
"name": "ref_0",
"type": "visualization",
},
Object {
"id": "3",
"name": "ref_1",
"type": "other-type",
},
],
"type": "dashboard",
},
],
}
`);
Object {
"errors": Array [],
"filteredObjects": Array [
Object {
"attributes": Object {},
"id": "1",
"references": Array [
Object {
"id": "2",
"name": "ref_0",
"type": "visualization",
},
Object {
"id": "3",
"name": "ref_1",
"type": "other-type",
},
],
"type": "dashboard",
},
],
}
`);
expect(savedObjectsClient.bulkGet).toHaveBeenCalledTimes(0);
});

View file

@ -21,5 +21,5 @@ import { ServiceStatusLevels, ServiceStatusLevel } from './types';
export const ServiceStatusLevelSnapshotSerializer: jest.SnapshotSerializerPlugin = {
test: (val: any) => Object.values(ServiceStatusLevels).includes(val),
print: (val: ServiceStatusLevel) => val.toString(),
serialize: (val: ServiceStatusLevel) => val.toString(),
};

View file

@ -87,7 +87,6 @@ describe('createOrUpgradeSavedConfig()', () => {
}, 30000);
it('upgrades the previous version on each increment', async function () {
jest.setTimeout(30000);
// ------------------------------------
// upgrade to 5.4.0
await createOrUpgradeSavedConfig({
@ -211,5 +210,5 @@ describe('createOrUpgradeSavedConfig()', () => {
'5.4.0': true,
'5.4.0-rc1': true,
});
});
}, 30000);
});

View file

@ -20,9 +20,9 @@
import hasAnsi from 'has-ansi';
import stripAnsi from 'strip-ansi';
export const stripAnsiSnapshotSerializer = {
print(value: string, serialize: (val: string) => string) {
return serialize(stripAnsi(value));
export const stripAnsiSnapshotSerializer: jest.SnapshotSerializerPlugin = {
serialize(value: string) {
return stripAnsi(value);
},
test(value: any) {

View file

@ -17,6 +17,6 @@
* under the License.
*/
import jest from 'jest';
import { run } from 'jest';
jest.run(process.argv.slice(2));
run(process.argv.slice(2));

View file

@ -79,6 +79,7 @@ export default {
coverageReporters: ['html', 'text'],
moduleFileExtensions: ['js', 'json', 'ts', 'tsx', 'node'],
modulePathIgnorePatterns: ['__fixtures__/', 'target/'],
testEnvironment: 'jest-environment-jsdom-thirteen',
testMatch: ['**/*.test.{js,ts,tsx}'],
testPathIgnorePatterns: [
'<rootDir>/packages/kbn-ui-framework/(dist|doc_site|generator-kui)/',

View file

@ -17,7 +17,7 @@
* under the License.
*/
import '@testing-library/jest-dom/extend-expect';
import '@testing-library/jest-dom';
/**
* Have to import "/pure" here to not register afterEach() hook clean up
* in the very beginning. There are couple tests which fail with clean up hook.

View file

@ -31,34 +31,34 @@ describe('createFilterStream()', () => {
await createPromiseFromStreams([createListStream(['a', 'b', 'c']), createFilterStream(filter)]);
expect(filter).toMatchInlineSnapshot(`
[MockFunction] {
"calls": Array [
Array [
"a",
],
Array [
"b",
],
Array [
"c",
],
],
"results": Array [
Object {
"type": "return",
"value": true,
},
Object {
"type": "return",
"value": true,
},
Object {
"type": "return",
"value": true,
},
],
}
`);
[MockFunction] {
"calls": Array [
Array [
"a",
],
Array [
"b",
],
Array [
"c",
],
],
"results": Array [
Object {
"type": "return",
"value": true,
},
Object {
"type": "return",
"value": true,
},
Object {
"type": "return",
"value": true,
},
],
}
`);
});
test('send the filtered values on the output stream', async () => {
@ -69,9 +69,9 @@ describe('createFilterStream()', () => {
]);
expect(result).toMatchInlineSnapshot(`
Array [
2,
]
`);
Array [
2,
]
`);
});
});

View file

@ -381,7 +381,7 @@ exports[`Field for array setting should render user value if there is user value
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset array test setting to default"
data-test-subj="advancedSetting-resetField-array:test:setting"
onClick={[Function]}
@ -391,7 +391,7 @@ exports[`Field for array setting should render user value if there is user value
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -818,7 +818,7 @@ exports[`Field for boolean setting should render user value if there is user val
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset boolean test setting to default"
data-test-subj="advancedSetting-resetField-boolean:test:setting"
onClick={[Function]}
@ -828,7 +828,7 @@ exports[`Field for boolean setting should render user value if there is user val
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -1236,7 +1236,7 @@ exports[`Field for image setting should render user value if there is user value
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset image test setting to default"
data-test-subj="advancedSetting-resetField-image:test:setting"
onClick={[Function]}
@ -1246,11 +1246,11 @@ exports[`Field for image setting should render user value if there is user value
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
<span>
<ForwardRef
<EuiLink
aria-label="Change image test setting"
data-test-subj="advancedSetting-changeImage-image:test:setting"
onClick={[Function]}
@ -1260,7 +1260,7 @@ exports[`Field for image setting should render user value if there is user value
id="advancedSettings.field.changeImageLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
</span>
</span>
}
@ -1620,7 +1620,7 @@ exports[`Field for json setting should render default value if there is no user
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset json test setting to default"
data-test-subj="advancedSetting-resetField-json:test:setting"
onClick={[Function]}
@ -1630,7 +1630,7 @@ exports[`Field for json setting should render default value if there is no user
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -1831,7 +1831,7 @@ exports[`Field for json setting should render user value if there is user value
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset json test setting to default"
data-test-subj="advancedSetting-resetField-json:test:setting"
onClick={[Function]}
@ -1841,7 +1841,7 @@ exports[`Field for json setting should render user value if there is user value
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -2358,7 +2358,7 @@ exports[`Field for markdown setting should render user value if there is user va
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset markdown test setting to default"
data-test-subj="advancedSetting-resetField-markdown:test:setting"
onClick={[Function]}
@ -2368,7 +2368,7 @@ exports[`Field for markdown setting should render user value if there is user va
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -2785,7 +2785,7 @@ exports[`Field for number setting should render user value if there is user valu
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset number test setting to default"
data-test-subj="advancedSetting-resetField-number:test:setting"
onClick={[Function]}
@ -2795,7 +2795,7 @@ exports[`Field for number setting should render user value if there is user valu
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -3272,7 +3272,7 @@ exports[`Field for select setting should render user value if there is user valu
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset select test setting to default"
data-test-subj="advancedSetting-resetField-select:test:setting"
onClick={[Function]}
@ -3282,7 +3282,7 @@ exports[`Field for select setting should render user value if there is user valu
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -3695,7 +3695,7 @@ exports[`Field for string setting should render user value if there is user valu
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset string test setting to default"
data-test-subj="advancedSetting-resetField-string:test:setting"
onClick={[Function]}
@ -3705,7 +3705,7 @@ exports[`Field for string setting should render user value if there is user valu
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>
@ -4102,7 +4102,7 @@ exports[`Field for stringWithValidation setting should render user value if ther
helpText={
<span>
<span>
<ForwardRef
<EuiLink
aria-label="Reset string test validation setting to default"
data-test-subj="advancedSetting-resetField-string:test-validation:setting"
onClick={[Function]}
@ -4112,7 +4112,7 @@ exports[`Field for stringWithValidation setting should render user value if ther
id="advancedSettings.field.resetToDefaultLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
   
</span>
</span>

View file

@ -155,7 +155,7 @@ exports[`Form should not render no settings message when instructed not to 1`] =
id="advancedSettings.form.searchResultText"
values={
Object {
"clearSearch": <ForwardRef
"clearSearch": <EuiLink
onClick={[Function]}
>
<em>
@ -165,7 +165,7 @@ exports[`Form should not render no settings message when instructed not to 1`] =
values={Object {}}
/>
</em>
</ForwardRef>,
</EuiLink>,
"settingsCount": 9,
}
}
@ -367,7 +367,7 @@ exports[`Form should render no settings message when there are no settings 1`] =
id="advancedSettings.form.searchResultText"
values={
Object {
"clearSearch": <ForwardRef
"clearSearch": <EuiLink
onClick={[Function]}
>
<em>
@ -377,7 +377,7 @@ exports[`Form should render no settings message when there are no settings 1`] =
values={Object {}}
/>
</em>
</ForwardRef>,
</EuiLink>,
"settingsCount": 9,
}
}
@ -579,7 +579,7 @@ exports[`Form should render normally 1`] = `
id="advancedSettings.form.searchResultText"
values={
Object {
"clearSearch": <ForwardRef
"clearSearch": <EuiLink
onClick={[Function]}
>
<em>
@ -589,7 +589,7 @@ exports[`Form should render normally 1`] = `
values={Object {}}
/>
</em>
</ForwardRef>,
</EuiLink>,
"settingsCount": 9,
}
}
@ -791,7 +791,7 @@ exports[`Form should render read-only when saving is disabled 1`] = `
id="advancedSettings.form.searchResultText"
values={
Object {
"clearSearch": <ForwardRef
"clearSearch": <EuiLink
onClick={[Function]}
>
<em>
@ -801,7 +801,7 @@ exports[`Form should render read-only when saving is disabled 1`] = `
values={Object {}}
/>
</em>
</ForwardRef>,
</EuiLink>,
"settingsCount": 9,
}
}

View file

@ -101,7 +101,7 @@ exports[`after fetch initialFilter 1`] = `
id="dashboard.listing.createNewDashboard.newToKibanaDescription"
values={
Object {
"sampleDataInstallLink": <ForwardRef
"sampleDataInstallLink": <EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -109,7 +109,7 @@ exports[`after fetch initialFilter 1`] = `
id="dashboard.listing.createNewDashboard.sampleDataInstallLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
@ -202,7 +202,7 @@ exports[`after fetch renders call to action when no dashboards exist 1`] = `
id="dashboard.listing.createNewDashboard.newToKibanaDescription"
values={
Object {
"sampleDataInstallLink": <ForwardRef
"sampleDataInstallLink": <EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -210,7 +210,7 @@ exports[`after fetch renders call to action when no dashboards exist 1`] = `
id="dashboard.listing.createNewDashboard.sampleDataInstallLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
@ -303,7 +303,7 @@ exports[`after fetch renders table rows 1`] = `
id="dashboard.listing.createNewDashboard.newToKibanaDescription"
values={
Object {
"sampleDataInstallLink": <ForwardRef
"sampleDataInstallLink": <EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -311,7 +311,7 @@ exports[`after fetch renders table rows 1`] = `
id="dashboard.listing.createNewDashboard.sampleDataInstallLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
@ -404,7 +404,7 @@ exports[`after fetch renders warning when listingLimit is exceeded 1`] = `
id="dashboard.listing.createNewDashboard.newToKibanaDescription"
values={
Object {
"sampleDataInstallLink": <ForwardRef
"sampleDataInstallLink": <EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -412,7 +412,7 @@ exports[`after fetch renders warning when listingLimit is exceeded 1`] = `
id="dashboard.listing.createNewDashboard.sampleDataInstallLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
@ -505,7 +505,7 @@ exports[`renders empty page in before initial fetch to avoid flickering 1`] = `
id="dashboard.listing.createNewDashboard.newToKibanaDescription"
values={
Object {
"sampleDataInstallLink": <ForwardRef
"sampleDataInstallLink": <EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -513,7 +513,7 @@ exports[`renders empty page in before initial fetch to avoid flickering 1`] = `
id="dashboard.listing.createNewDashboard.sampleDataInstallLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>

View file

@ -20,7 +20,6 @@
import React from 'react';
import { wait } from '@testing-library/dom';
import { cleanup, render } from '@testing-library/react/pure';
import '@testing-library/jest-dom/extend-expect';
import {
HelloWorldEmbeddable,
HelloWorldEmbeddableFactoryDefinition,

View file

@ -150,7 +150,7 @@ exports[`statusCheckState checking status 1`] = `
},
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -169,7 +169,7 @@ exports[`statusCheckState checking status 1`] = `
custom btn label
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>
@ -257,7 +257,7 @@ exports[`statusCheckState failed status check - error 1`] = `
},
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -276,7 +276,7 @@ exports[`statusCheckState failed status check - error 1`] = `
custom btn label
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>
@ -368,7 +368,7 @@ exports[`statusCheckState failed status check - no data 1`] = `
},
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -387,7 +387,7 @@ exports[`statusCheckState failed status check - no data 1`] = `
custom btn label
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>
@ -479,7 +479,7 @@ exports[`statusCheckState initial state - no check has been attempted 1`] = `
},
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -498,7 +498,7 @@ exports[`statusCheckState initial state - no check has been attempted 1`] = `
custom btn label
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>
@ -586,7 +586,7 @@ exports[`statusCheckState successful status check 1`] = `
},
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -605,7 +605,7 @@ exports[`statusCheckState successful status check 1`] = `
custom btn label
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>

View file

@ -120,7 +120,7 @@ exports[`bulkCreate should display error message when bulkCreate request fails 1
Array [
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -142,7 +142,7 @@ exports[`bulkCreate should display error message when bulkCreate request fails 1
Load Kibana objects
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>
@ -421,7 +421,7 @@ exports[`bulkCreate should display success message when bulkCreate is successful
Array [
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -443,7 +443,7 @@ exports[`bulkCreate should display success message when bulkCreate is successful
Load Kibana objects
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>
@ -627,7 +627,7 @@ exports[`renders 1`] = `
Array [
Object {
"children": <React.Fragment>
<ForwardRef
<EuiFlexGroup
alignItems="center"
justifyContent="spaceBetween"
>
@ -649,7 +649,7 @@ exports[`renders 1`] = `
Load Kibana objects
</EuiButton>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
<EuiSpacer
size="s"
/>

View file

@ -18,7 +18,7 @@ exports[`EmptyState should render normally 1`] = `
id="indexPatternManagement.createIndexPattern.emptyStateLabel.emptyStateDetail"
values={
Object {
"getStartedLink": <ForwardRef
"getStartedLink": <EuiLink
href="/app/home#/tutorial_directory/sampleData"
>
<FormattedMessage
@ -26,8 +26,8 @@ exports[`EmptyState should render normally 1`] = `
id="indexPatternManagement.createIndexPattern.emptyStateLabel.getStartedLink"
values={Object {}}
/>
</ForwardRef>,
"learnHowLink": <ForwardRef
</EuiLink>,
"learnHowLink": <EuiLink
href="/app/home#/tutorial_directory"
>
<FormattedMessage
@ -35,7 +35,7 @@ exports[`EmptyState should render normally 1`] = `
id="indexPatternManagement.createIndexPattern.emptyStateLabel.learnHowLink"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
"needToIndex": <EuiTextColor
color="subdued"
>

View file

@ -27,7 +27,7 @@ exports[`TimeField should render a loading state 1`] = `
</div>
}
label={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="xs"
justifyContent="spaceBetween"
@ -50,7 +50,7 @@ exports[`TimeField should render a loading state 1`] = `
size="s"
/>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
labelType="label"
>
@ -98,7 +98,7 @@ exports[`TimeField should render a selected time field 1`] = `
</div>
}
label={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="xs"
justifyContent="spaceBetween"
@ -117,7 +117,7 @@ exports[`TimeField should render a selected time field 1`] = `
<EuiFlexItem
grow={false}
>
<ForwardRef
<EuiLink
className="timeFieldRefreshButton"
onClick={[Function]}
>
@ -126,9 +126,9 @@ exports[`TimeField should render a selected time field 1`] = `
id="indexPatternManagement.createIndexPattern.stepTime.refreshButton"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
labelType="label"
>
@ -179,7 +179,7 @@ exports[`TimeField should render normally 1`] = `
</div>
}
label={
<ForwardRef
<EuiFlexGroup
alignItems="center"
gutterSize="xs"
justifyContent="spaceBetween"
@ -198,7 +198,7 @@ exports[`TimeField should render normally 1`] = `
<EuiFlexItem
grow={false}
>
<ForwardRef
<EuiLink
className="timeFieldRefreshButton"
onClick={[Function]}
>
@ -207,9 +207,9 @@ exports[`TimeField should render normally 1`] = `
id="indexPatternManagement.createIndexPattern.stepTime.refreshButton"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
</EuiFlexItem>
</ForwardRef>
</EuiFlexGroup>
}
labelType="label"
>

View file

@ -20,7 +20,7 @@ exports[`CallOuts should render normally 1`] = `
values={
Object {
"deprecatedLangsInUse": "php",
"link": <ForwardRef
"link": <EuiLink
href="http://www.elastic.co/painlessDocs"
>
<FormattedMessage
@ -28,7 +28,7 @@ exports[`CallOuts should render normally 1`] = `
id="indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.painlessDescription"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>

View file

@ -10,7 +10,7 @@ exports[`BytesFormatEditor should render normally 1`] = `
hasEmptyLabelSpace={false}
helpText={
<span>
<ForwardRef
<EuiLink
href="https://adamwdraper.github.io/Numeral-js/"
target="_blank"
>
@ -23,7 +23,7 @@ exports[`BytesFormatEditor should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>
</EuiLink>
</span>
}
isInvalid={false}

View file

@ -10,7 +10,7 @@ exports[`DateFormatEditor should render normally 1`] = `
hasEmptyLabelSpace={false}
helpText={
<span>
<ForwardRef
<EuiLink
href="https://momentjs.com/"
target="_blank"
>
@ -23,7 +23,7 @@ exports[`DateFormatEditor should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>
</EuiLink>
</span>
}
isInvalid={false}

View file

@ -10,7 +10,7 @@ exports[`DateFormatEditor should render normally 1`] = `
hasEmptyLabelSpace={false}
helpText={
<span>
<ForwardRef
<EuiLink
href="https://momentjs.com/"
target="_blank"
>
@ -23,7 +23,7 @@ exports[`DateFormatEditor should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>
</EuiLink>
</span>
}
isInvalid={false}

View file

@ -10,7 +10,7 @@ exports[`NumberFormatEditor should render normally 1`] = `
hasEmptyLabelSpace={false}
helpText={
<span>
<ForwardRef
<EuiLink
href="https://adamwdraper.github.io/Numeral-js/"
target="_blank"
>
@ -23,7 +23,7 @@ exports[`NumberFormatEditor should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>
</EuiLink>
</span>
}
isInvalid={false}

View file

@ -10,7 +10,7 @@ exports[`PercentFormatEditor should render normally 1`] = `
hasEmptyLabelSpace={false}
helpText={
<span>
<ForwardRef
<EuiLink
href="https://adamwdraper.github.io/Numeral-js/"
target="_blank"
>
@ -23,7 +23,7 @@ exports[`PercentFormatEditor should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>
</EuiLink>
</span>
}
isInvalid={false}

View file

@ -53,7 +53,7 @@ exports[`UrlFormatEditor should render label template help 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -61,7 +61,7 @@ exports[`UrlFormatEditor should render label template help 1`] = `
id="indexPatternManagement.url.template.helpLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -86,7 +86,7 @@ exports[`UrlFormatEditor should render label template help 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -94,7 +94,7 @@ exports[`UrlFormatEditor should render label template help 1`] = `
id="indexPatternManagement.url.labelTemplateHelpText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -172,7 +172,7 @@ exports[`UrlFormatEditor should render normally 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -180,7 +180,7 @@ exports[`UrlFormatEditor should render normally 1`] = `
id="indexPatternManagement.url.template.helpLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -205,7 +205,7 @@ exports[`UrlFormatEditor should render normally 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -213,7 +213,7 @@ exports[`UrlFormatEditor should render normally 1`] = `
id="indexPatternManagement.url.labelTemplateHelpText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -291,7 +291,7 @@ exports[`UrlFormatEditor should render url template help 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -299,7 +299,7 @@ exports[`UrlFormatEditor should render url template help 1`] = `
id="indexPatternManagement.url.template.helpLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -324,7 +324,7 @@ exports[`UrlFormatEditor should render url template help 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -332,7 +332,7 @@ exports[`UrlFormatEditor should render url template help 1`] = `
id="indexPatternManagement.url.labelTemplateHelpText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -411,7 +411,7 @@ exports[`UrlFormatEditor should render width and height fields if image 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -419,7 +419,7 @@ exports[`UrlFormatEditor should render width and height fields if image 1`] = `
id="indexPatternManagement.url.template.helpLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={
@ -444,7 +444,7 @@ exports[`UrlFormatEditor should render width and height fields if image 1`] = `
hasChildLabel={true}
hasEmptyLabelSpace={false}
helpText={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -452,7 +452,7 @@ exports[`UrlFormatEditor should render width and height fields if image 1`] = `
id="indexPatternManagement.url.labelTemplateHelpText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
isInvalid={false}
label={

View file

@ -60,7 +60,7 @@ exports[`ScriptingWarningCallOut should render normally 1`] = `
id="indexPatternManagement.warningCallOutLabel.callOutDetail"
values={
Object {
"scripFields": <ForwardRef
"scripFields": <EuiLink
href="https://www.elastic.co/guide/en/elasticsearch/reference/mocked-test-branch/search-request-script-fields.html"
target="_blank"
>
@ -73,8 +73,8 @@ exports[`ScriptingWarningCallOut should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>,
"scriptsInAggregation": <ForwardRef
</EuiLink>,
"scriptsInAggregation": <EuiLink
href="https://www.elastic.co/guide/en/elasticsearch/reference/mocked-test-branch/search-aggregations.html#_values_source"
target="_blank"
>
@ -87,7 +87,7 @@ exports[`ScriptingWarningCallOut should render normally 1`] = `
<EuiIcon
type="link"
/>
</ForwardRef>,
</EuiLink>,
}
}
>

View file

@ -43,7 +43,7 @@ exports[`Flyout conflicts should allow conflict resolution 1`] = `
id="savedObjectsManagement.objectsTable.flyout.indexPatternConflictsDescription"
values={
Object {
"indexPatternLink": <ForwardRef
"indexPatternLink": <EuiLink
href=""
>
<FormattedMessage
@ -51,7 +51,7 @@ exports[`Flyout conflicts should allow conflict resolution 1`] = `
id="savedObjectsManagement.objectsTable.flyout.indexPatternConflictsCalloutLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
@ -383,7 +383,7 @@ exports[`Flyout legacy conflicts should allow conflict resolution 1`] = `
id="savedObjectsManagement.objectsTable.flyout.indexPatternConflictsDescription"
values={
Object {
"indexPatternLink": <ForwardRef
"indexPatternLink": <EuiLink
href=""
>
<FormattedMessage
@ -391,7 +391,7 @@ exports[`Flyout legacy conflicts should allow conflict resolution 1`] = `
id="savedObjectsManagement.objectsTable.flyout.indexPatternConflictsCalloutLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
@ -545,7 +545,7 @@ Array [
id="savedObjectsManagement.objectsTable.flyout.indexPatternConflictsDescription"
values={
Object {
"indexPatternLink": <ForwardRef
"indexPatternLink": <EuiLink
href=""
>
<FormattedMessage
@ -553,7 +553,7 @@ Array [
id="savedObjectsManagement.objectsTable.flyout.indexPatternConflictsCalloutLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>

View file

@ -22,15 +22,19 @@ jest.doMock('@elastic/filesaver', () => ({
saveAs: saveAsMock,
}));
jest.doMock('lodash', () => ({
...jest.requireActual('lodash'),
debounce: (func: Function) => {
function debounced(this: any, ...args: any[]) {
return func.apply(this, args);
}
return debounced;
},
}));
jest.doMock('lodash', () => {
const original = jest.requireActual('lodash');
return {
...original,
debounce: (func: Function) => {
function debounced(this: any, ...args: any[]) {
return func.apply(this, args);
}
return debounced;
},
};
});
export const findObjectsMock = jest.fn();
jest.doMock('../../lib/find_objects', () => ({

View file

@ -40,7 +40,7 @@ exports[`share url panel content render 1`] = `
Object {
"data-test-subj": "exportAsSnapshot",
"id": "snapshot",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -71,13 +71,13 @@ exports[`share url panel content render 1`] = `
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
Object {
"data-test-subj": "exportAsSavedObject",
"disabled": true,
"id": "savedObject",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -108,7 +108,7 @@ exports[`share url panel content render 1`] = `
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
]
}
@ -202,7 +202,7 @@ exports[`share url panel content should enable saved object export option when o
Object {
"data-test-subj": "exportAsSnapshot",
"id": "snapshot",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -233,13 +233,13 @@ exports[`share url panel content should enable saved object export option when o
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
Object {
"data-test-subj": "exportAsSavedObject",
"disabled": false,
"id": "savedObject",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -270,7 +270,7 @@ exports[`share url panel content should enable saved object export option when o
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
]
}
@ -364,7 +364,7 @@ exports[`share url panel content should hide short url section when allowShortUr
Object {
"data-test-subj": "exportAsSnapshot",
"id": "snapshot",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -395,13 +395,13 @@ exports[`share url panel content should hide short url section when allowShortUr
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
Object {
"data-test-subj": "exportAsSavedObject",
"disabled": false,
"id": "savedObject",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -432,7 +432,7 @@ exports[`share url panel content should hide short url section when allowShortUr
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
]
}
@ -481,7 +481,7 @@ exports[`should show url param extensions 1`] = `
Object {
"data-test-subj": "exportAsSnapshot",
"id": "snapshot",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -512,13 +512,13 @@ exports[`should show url param extensions 1`] = `
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
Object {
"data-test-subj": "exportAsSavedObject",
"disabled": false,
"id": "savedObject",
"label": <ForwardRef
"label": <EuiFlexGroup
gutterSize="none"
responsive={false}
>
@ -549,7 +549,7 @@ exports[`should show url param extensions 1`] = `
position="bottom"
/>
</EuiFlexItem>
</ForwardRef>,
</EuiFlexGroup>,
},
]
}

View file

@ -7,7 +7,7 @@ exports[`OptInMessage renders as expected 1`] = `
id="telemetry.telemetryBannerDescription"
values={
Object {
"privacyStatementLink": <ForwardRef
"privacyStatementLink": <EuiLink
href="https://www.elastic.co/legal/privacy-statement"
rel="noopener"
target="_blank"
@ -17,7 +17,7 @@ exports[`OptInMessage renders as expected 1`] = `
id="telemetry.welcomeBanner.telemetryConfigDetailsDescription.telemetryPrivacyStatementLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>

View file

@ -9,7 +9,7 @@ exports[`OptInDetailsComponent renders as expected 1`] = `
id="telemetry.telemetryOptedInNoticeDescription"
values={
Object {
"disableLink": <ForwardRef
"disableLink": <EuiLink
href="management/kibana/settings"
onClick={[Function]}
>
@ -18,8 +18,8 @@ exports[`OptInDetailsComponent renders as expected 1`] = `
id="telemetry.telemetryOptedInDisableUsage"
values={Object {}}
/>
</ForwardRef>,
"privacyStatementLink": <ForwardRef
</EuiLink>,
"privacyStatementLink": <EuiLink
href="https://www.elastic.co/legal/privacy-statement"
onClick={[Function]}
rel="noopener"
@ -30,7 +30,7 @@ exports[`OptInDetailsComponent renders as expected 1`] = `
id="telemetry.telemetryOptedInPrivacyStatement"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>

View file

@ -26,18 +26,22 @@ class LocalStorageMock implements Partial<Storage> {
getItem = jest.fn();
setItem = jest.fn();
}
const mockLocalStorage = new LocalStorageMock();
const originalLocalStorage = window.localStorage;
Object.defineProperty(window, 'localStorage', {
value: mockLocalStorage,
});
describe('TelemetrySender', () => {
let originalLocalStorage: Storage;
let mockLocalStorage: LocalStorageMock;
beforeAll(() => {
originalLocalStorage = window.localStorage;
beforeEach(() => {
mockLocalStorage.getItem.mockClear();
mockLocalStorage.setItem.mockClear();
});
// @ts-ignore
beforeEach(() => (window.localStorage = mockLocalStorage = new LocalStorageMock()));
// @ts-ignore
afterAll(() => (window.localStorage = originalLocalStorage));
afterAll(() =>
Object.defineProperty(window, 'localStorage', {
value: originalLocalStorage,
})
);
describe('constructor', () => {
it('defaults lastReport if unset', () => {

View file

@ -65,7 +65,7 @@ exports[`TelemetryManagementSectionComponent renders as expected 1`] = `
id="telemetry.telemetryConfigAndLinkDescription"
values={
Object {
"privacyStatementLink": <ForwardRef
"privacyStatementLink": <EuiLink
href="https://www.elastic.co/legal/privacy-statement"
target="_blank"
>
@ -74,13 +74,13 @@ exports[`TelemetryManagementSectionComponent renders as expected 1`] = `
id="telemetry.readOurUsageDataPrivacyStatementLinkText"
values={Object {}}
/>
</ForwardRef>,
</EuiLink>,
}
}
/>
</p>
<p>
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -88,7 +88,7 @@ exports[`TelemetryManagementSectionComponent renders as expected 1`] = `
id="telemetry.seeExampleOfWhatWeCollectLinkText"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
</p>
</React.Fragment>,
"displayName": "Provide usage statistics",

View file

@ -26,10 +26,14 @@ import { EuiButtonGroup } from '@elastic/eui';
import { VisLegend, VisLegendProps } from './legend';
import { legendColors } from './models';
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
htmlIdGenerator: jest.fn().mockReturnValue(() => 'legendId'),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
htmlIdGenerator: jest.fn().mockReturnValue(() => 'legendId'),
};
});
jest.mock('../../../services', () => ({
getDataActions: () => ({

View file

@ -24,7 +24,6 @@ import { NewVisModal } from './new_vis_modal';
import { ApplicationStart, SavedObjectsStart } from '../../../../core/public';
describe('NewVisModal', () => {
const { location } = window;
const defaultVisTypeParams = {
hidden: false,
visualization: class Controller {
@ -65,12 +64,16 @@ describe('NewVisModal', () => {
const settingsGet = jest.fn();
const uiSettings: any = { get: settingsGet };
beforeEach(() => {
jest.clearAllMocks();
beforeAll(() => {
Object.defineProperty(window, 'location', {
value: {
assign: jest.fn(),
},
});
});
afterAll(() => {
window.location = location;
beforeEach(() => {
jest.clearAllMocks();
});
it('should render as expected', () => {
@ -105,7 +108,6 @@ describe('NewVisModal', () => {
describe('open editor', () => {
it('should open the editor for visualizations without search', () => {
window.location.assign = jest.fn();
const wrapper = mountWithIntl(
<NewVisModal
isOpen={true}
@ -123,7 +125,6 @@ describe('NewVisModal', () => {
});
it('passes through editor params to the editor URL', () => {
window.location.assign = jest.fn();
const wrapper = mountWithIntl(
<NewVisModal
isOpen={true}

View file

@ -97,18 +97,22 @@ export interface TestBed<T = string> {
* For the <EuiSuperSelect /> you need to mock it like this
*
```typescript
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
EuiSuperSelect: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockSuperSelect'}
value={props.valueOfSelected}
onChange={e => {
onChange={(e) => {
props.onChange(e.target.value);
}}
/>
),
}));
};
});
```
* @param select The form select. Can either be a data-test-subj or a reactWrapper (can be a nested path. e.g. "myForm.myInput").
* @param value The value to set

View file

@ -53,7 +53,9 @@
"node",
"jest",
"react",
"flot"
"flot",
"jest-styled-components",
"@testing-library/jest-dom"
]
},
"include": [

View file

@ -57,7 +57,9 @@ export function createJestConfig({ kibanaDirectory, rootDir, xPackKibanaDirector
`${kibanaDirectory}/src/dev/jest/setup/mocks.js`,
`${kibanaDirectory}/src/dev/jest/setup/react_testing_library.js`,
],
testEnvironment: 'jest-environment-jsdom-thirteen',
testMatch: ['**/*.test.{js,ts,tsx}'],
testRunner: 'jest-circus/runner',
transform: {
'^.+\\.(js|tsx?)$': `${kibanaDirectory}/src/dev/jest/babel_transform.js`,
'^.+\\.html?$': 'jest-raw-loader',

View file

@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import jest from 'jest';
import { run } from 'jest';
import { resolve } from 'path';
import { createJestConfig } from './create_jest_config';
@ -21,5 +21,5 @@ export function runJest() {
const argv = [...process.argv.slice(2), '--config', config];
return jest.run(argv);
return run(argv);
}

View file

@ -10,3 +10,4 @@
*/
import 'jest-styled-components';
import '@testing-library/jest-dom';

View file

@ -47,7 +47,7 @@
"@storybook/theming": "^5.2.6",
"@testing-library/react": "^9.3.2",
"@testing-library/react-hooks": "^3.2.1",
"@testing-library/jest-dom": "4.2.0",
"@testing-library/jest-dom": "^5.8.0",
"@types/angular": "^1.6.56",
"@types/archiver": "^3.0.0",
"@types/base64-js": "^1.2.5",
@ -74,11 +74,11 @@
"@types/hapi__wreck": "^15.0.1",
"@types/hoist-non-react-statics": "^3.3.1",
"@types/history": "^4.7.3",
"@types/jest": "24.0.19",
"@types/jest": "^25.2.3",
"@types/joi": "^13.4.2",
"@types/js-search": "^1.4.0",
"@types/js-yaml": "^3.11.1",
"@types/jsdom": "^12.2.4",
"@types/jsdom": "^16.2.3",
"@types/json-stable-stringify": "^1.0.32",
"@types/jsonwebtoken": "^7.2.8",
"@types/lodash": "^3.10.1",
@ -111,6 +111,7 @@
"@types/styled-components": "^5.1.0",
"@types/supertest": "^2.0.5",
"@types/tar-fs": "^1.16.1",
"@types/testing-library__jest-dom": "^5.7.0",
"@types/tinycolor2": "^1.4.1",
"@types/use-resize-observer": "^6.0.0",
"@types/uuid": "^3.4.4",
@ -121,10 +122,11 @@
"@welldone-software/why-did-you-render": "^4.0.0",
"abab": "^1.0.4",
"axios": "^0.19.0",
"babel-jest": "^24.9.0",
"babel-jest": "^25.5.1",
"babel-plugin-require-context-hook": "npm:babel-plugin-require-context-hook-babel7@1.0.0",
"base64-js": "^1.3.1",
"base64url": "^3.0.1",
"canvas": "^2.6.1",
"chalk": "^2.4.2",
"chance": "1.0.18",
"cheerio": "0.22.0",
@ -149,10 +151,11 @@
"gulp": "4.0.2",
"hapi": "^17.5.3",
"hoist-non-react-statics": "^3.3.2",
"jest": "^24.9.0",
"jest-cli": "^24.9.0",
"jest": "^25.5.4",
"jest-circus": "^25.5.4",
"jest-cli": "^25.5.4",
"jest-styled-components": "^7.0.2",
"jsdom": "^15.2.1",
"jsdom": "13.1.0",
"loader-utils": "^1.2.3",
"madge": "3.4.4",
"marge": "^1.0.1",
@ -170,7 +173,7 @@
"proxyquire": "1.8.0",
"react-docgen-typescript-loader": "^3.1.1",
"react-test-renderer": "^16.12.0",
"rxjs-marbles": "^5.0.3",
"rxjs-marbles": "^5.0.6",
"sass-loader": "^8.0.2",
"simple-git": "1.116.0",
"sinon": "^7.4.2",
@ -348,7 +351,7 @@
"reselect": "^4.0.0",
"resize-observer-polyfill": "^1.5.0",
"rison-node": "0.3.1",
"rxjs": "^6.5.3",
"rxjs": "^6.5.5",
"semver": "5.7.0",
"set-value": "^3.0.2",
"squel": "^5.13.0",

View file

@ -17,21 +17,23 @@ import { MockApmPluginContextWrapper } from '../../../context/ApmPluginContext/M
describe('APMIndicesPermission', () => {
it('returns empty component when api status is loading', () => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.LOADING,
refetch: jest.fn(),
});
const component = shallow(<APMIndicesPermission />);
expect(component.isEmptyRender()).toBeTruthy();
});
it('returns empty component when api status is pending', () => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.PENDING,
refetch: jest.fn(),
});
const component = shallow(<APMIndicesPermission />);
expect(component.isEmptyRender()).toBeTruthy();
});
it('renders missing permission page', () => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.SUCCESS,
data: {
has_all_requested: false,
@ -39,6 +41,7 @@ describe('APMIndicesPermission', () => {
'apm-*': { read: false },
},
},
refetch: jest.fn(),
});
const component = render(
<MockApmPluginContextWrapper>
@ -53,12 +56,13 @@ describe('APMIndicesPermission', () => {
});
it('shows children component when no index is returned', () => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.SUCCESS,
data: {
has_all_requested: false,
index: {},
},
refetch: jest.fn(),
});
const component = render(
<MockApmPluginContextWrapper>
@ -72,12 +76,13 @@ describe('APMIndicesPermission', () => {
});
it('shows children component when indices have read privileges', () => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.SUCCESS,
data: {
has_all_requested: true,
index: {},
},
refetch: jest.fn(),
});
const component = render(
<MockApmPluginContextWrapper>
@ -91,7 +96,7 @@ describe('APMIndicesPermission', () => {
});
it('dismesses the warning by clicking on the escape hatch', () => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.SUCCESS,
data: {
has_all_requested: false,
@ -102,6 +107,7 @@ describe('APMIndicesPermission', () => {
'apm-span-*': { read: true },
},
},
refetch: jest.fn(),
});
const component = render(
<MockApmPluginContextWrapper>
@ -122,7 +128,10 @@ describe('APMIndicesPermission', () => {
});
it("shows children component when api doesn't return value", () => {
spyOn(hooks, 'useFetcher').and.returnValue({});
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
const component = render(
<MockApmPluginContextWrapper>
<APMIndicesPermission>

View file

@ -7,11 +7,11 @@ exports[`ServiceOverview -> List should render columns correctly 1`] = `
id="service-name-tooltip"
position="top"
>
<ForwardRef(Styled(TransactionOverviewLink))
<Styled(TransactionOverviewLink)
serviceName="opbeans-python"
>
opbeans-python
</ForwardRef(Styled(TransactionOverviewLink))>
</Styled(TransactionOverviewLink)>
</EuiToolTip>
`;

View file

@ -59,11 +59,13 @@ describe('Service Overview -> View', () => {
global.sessionStorage = new SessionStorageMock();
// mock urlParams
spyOn(urlParamsHooks, 'useUrlParams').and.returnValue({
jest.spyOn(urlParamsHooks, 'useUrlParams').mockReturnValue({
urlParams: {
start: 'myStart',
end: 'myEnd',
},
refreshTimeRange: jest.fn(),
uiFilters: {},
});
jest.spyOn(useLocalUIFilters, 'useLocalUIFilters').mockReturnValue({

View file

@ -12,9 +12,10 @@ import { MockApmPluginContextWrapper } from '../../../../context/ApmPluginContex
describe('ApmIndices', () => {
it('should not get stuck in infinite loop', () => {
const spy = spyOn(hooks, 'useFetcher').and.returnValue({
const spy = jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data: undefined,
status: 'loading',
status: hooks.FETCH_STATUS.LOADING,
refetch: jest.fn(),
});
const { getByText } = render(
<MockApmPluginContextWrapper>

View file

@ -15,9 +15,9 @@ import {
import * as apmApi from '../../../../../../services/rest/createCallApmApi';
describe('LinkPreview', () => {
let callApmApiSpy: jasmine.Spy;
let callApmApiSpy: jest.SpyInstance<any, never>;
beforeAll(() => {
callApmApiSpy = spyOn(apmApi, 'callApmApi').and.returnValue({
callApmApiSpy = jest.spyOn(apmApi, 'callApmApi').mockReturnValue({
transaction: { id: 'foo' },
});
});

View file

@ -35,9 +35,9 @@ const data = [
];
describe('CustomLink', () => {
let callApmApiSpy: jasmine.Spy;
let callApmApiSpy: jest.SpyInstance<any, never>;
beforeAll(() => {
callApmApiSpy = spyOn(apmApi, 'callApmApi').and.returnValue({});
callApmApiSpy = jest.spyOn(apmApi, 'callApmApi').mockReturnValue({});
});
afterAll(() => {
jest.resetAllMocks();
@ -54,9 +54,10 @@ describe('CustomLink', () => {
});
describe('empty prompt', () => {
beforeAll(() => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data: [],
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
});
@ -75,9 +76,10 @@ describe('CustomLink', () => {
describe('overview', () => {
beforeAll(() => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data,
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
});
@ -120,18 +122,16 @@ describe('CustomLink', () => {
describe('Flyout', () => {
const refetch = jest.fn();
let saveCustomLinkSpy: Function;
let saveCustomLinkSpy: jest.SpyInstance;
beforeAll(() => {
saveCustomLinkSpy = spyOn(saveCustomLink, 'saveCustomLink');
spyOn(hooks, 'useFetcher').and.returnValue({
saveCustomLinkSpy = jest.spyOn(saveCustomLink, 'saveCustomLink');
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data,
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch,
});
});
afterEach(() => {
jest.resetAllMocks();
});
const openFlyout = async () => {
const component = render(
@ -268,9 +268,10 @@ describe('CustomLink', () => {
describe('invalid license', () => {
beforeAll(() => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data: [],
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
});
it('shows license prompt when user has a basic license', () => {

View file

@ -36,16 +36,19 @@ describe('TraceLink', () => {
});
it('renders trace page when transaction is not found', () => {
spyOn(urlParamsHooks, 'useUrlParams').and.returnValue({
jest.spyOn(urlParamsHooks, 'useUrlParams').mockReturnValue({
urlParams: {
traceIdLink: '123',
rangeFrom: 'now-24h',
rangeTo: 'now',
},
refreshTimeRange: jest.fn(),
uiFilters: {},
});
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data: { transaction: undefined },
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
const component = shallow(<TraceLink />);
@ -56,12 +59,14 @@ describe('TraceLink', () => {
describe('transaction page', () => {
beforeAll(() => {
spyOn(urlParamsHooks, 'useUrlParams').and.returnValue({
jest.spyOn(urlParamsHooks, 'useUrlParams').mockReturnValue({
urlParams: {
traceIdLink: '123',
rangeFrom: 'now-24h',
rangeTo: 'now',
},
refreshTimeRange: jest.fn(),
uiFilters: {},
});
});
it('renders with date range params', () => {
@ -74,9 +79,10 @@ describe('TraceLink', () => {
},
trace: { id: 123 },
};
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data: { transaction },
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
const component = shallow(<TraceLink />);
expect(component.prop('to')).toEqual(

View file

@ -24,9 +24,9 @@ exports[`StickyProperties should render entire component 1`] = `
<PropertyLabel>
<EuiToolTip
content={
<ForwardRef(styled.span)>
<styled.span>
url.full
</ForwardRef(styled.span)>
</styled.span>
}
delay="regular"
position="top"
@ -59,9 +59,9 @@ exports[`StickyProperties should render entire component 1`] = `
<PropertyLabel>
<EuiToolTip
content={
<ForwardRef(styled.span)>
<styled.span>
http.request.method
</ForwardRef(styled.span)>
</styled.span>
}
delay="regular"
position="top"
@ -88,9 +88,9 @@ exports[`StickyProperties should render entire component 1`] = `
<PropertyLabel>
<EuiToolTip
content={
<ForwardRef(styled.span)>
<styled.span>
error.exception.handled
</ForwardRef(styled.span)>
</styled.span>
}
delay="regular"
position="top"
@ -117,9 +117,9 @@ exports[`StickyProperties should render entire component 1`] = `
<PropertyLabel>
<EuiToolTip
content={
<ForwardRef(styled.span)>
<styled.span>
user.id
</ForwardRef(styled.span)>
</styled.span>
}
delay="regular"
position="top"

View file

@ -63,9 +63,10 @@ const renderTransaction = async (
describe('TransactionActionMenu component', () => {
beforeAll(() => {
spyOn(hooks, 'useFetcher').and.returnValue({
jest.spyOn(hooks, 'useFetcher').mockReturnValue({
data: [],
status: 'success',
status: hooks.FETCH_STATUS.SUCCESS,
refetch: jest.fn(),
});
});
afterAll(() => {
@ -257,7 +258,7 @@ describe('TransactionActionMenu component', () => {
describe('Custom links', () => {
beforeAll(() => {
// Mocks callApmAPI because it's going to be used to fecth the transaction in the custom links flyout.
spyOn(apmApi, 'callApmApi').and.returnValue({});
jest.spyOn(apmApi, 'callApmApi').mockReturnValue({});
});
afterAll(() => {
jest.resetAllMocks();

View file

@ -6,28 +6,28 @@ Array [
"color": "#6092c0",
"disabled": undefined,
"onClick": [Function],
"text": <ForwardRef(styled.span)>
"text": <styled.span>
Avg.
<ForwardRef(styled.span)>
<styled.span>
468 ms
</ForwardRef(styled.span)>
</ForwardRef(styled.span)>,
</styled.span>
</styled.span>,
},
Object {
"color": "#d6bf57",
"disabled": undefined,
"onClick": [Function],
"text": <ForwardRef(styled.span)>
"text": <styled.span>
95th percentile
</ForwardRef(styled.span)>,
</styled.span>,
},
Object {
"color": "#da8b45",
"disabled": undefined,
"onClick": [Function],
"text": <ForwardRef(styled.span)>
"text": <styled.span>
99th percentile
</ForwardRef(styled.span)>,
</styled.span>,
},
]
`;

View file

@ -5,12 +5,12 @@ exports[`AgentMarker renders 1`] = `
<EuiToolTip
content={
<div>
<ForwardRef(styled.div)>
<styled.div>
agent
</ForwardRef(styled.div)>
<ForwardRef(styled.div)>
</styled.div>
<styled.div>
1,000 μs
</ForwardRef(styled.div)>
</styled.div>
</div>
}
delay="regular"

View file

@ -13,7 +13,6 @@ import moment from 'moment';
import { Moment } from 'moment-timezone';
import React from 'react';
import { render, waitForElement } from '@testing-library/react';
import '@testing-library/jest-dom/extend-expect';
import { MemoryRouter } from 'react-router-dom';
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
import { APMConfig } from '../../server';

View file

@ -17,7 +17,7 @@ exports[`Storyshots components/Shapes/ShapePicker default 1`] = `
dangerouslySetInnerHTML={
Object {
"__html": "<svg xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"-2.5 -2.5 105 105\\" fill=\\"none\\" stroke=\\"black\\">
<polygon points=\\"0,40 60,40 60,20 95,50 60,80 60,60 0,60\\"></polygon>
<polygon points=\\"0,40 60,40 60,20 95,50 60,80 60,60 0,60\\"/>
</svg>",
}
}
@ -37,7 +37,7 @@ exports[`Storyshots components/Shapes/ShapePicker default 1`] = `
dangerouslySetInnerHTML={
Object {
"__html": "<svg xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"-2.5 -2.5 105 105\\" fill=\\"none\\" stroke=\\"black\\">
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"></rect>
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"/>
</svg>",
}
}

View file

@ -66,7 +66,7 @@ exports[`Storyshots components/Shapes/ShapePickerPopover interactive 1`] = `
dangerouslySetInnerHTML={
Object {
"__html": "<svg xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"-2.5 -2.5 105 105\\" fill=\\"none\\" stroke=\\"black\\">
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"></rect>
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"/>
</svg>",
}
}
@ -108,7 +108,7 @@ exports[`Storyshots components/Shapes/ShapePickerPopover shape selected 1`] = `
dangerouslySetInnerHTML={
Object {
"__html": "<svg xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"-2.5 -2.5 105 105\\" fill=\\"none\\" stroke=\\"black\\">
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"></rect>
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"/>
</svg>",
}
}

View file

@ -6,7 +6,7 @@ exports[`Storyshots components/Shapes/ShapePreview arrow 1`] = `
dangerouslySetInnerHTML={
Object {
"__html": "<svg xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"-2.5 -2.5 105 105\\" fill=\\"none\\" stroke=\\"black\\">
<polygon points=\\"0,40 60,40 60,20 95,50 60,80 60,60 0,60\\"></polygon>
<polygon points=\\"0,40 60,40 60,20 95,50 60,80 60,60 0,60\\"/>
</svg>",
}
}
@ -19,7 +19,7 @@ exports[`Storyshots components/Shapes/ShapePreview square 1`] = `
dangerouslySetInnerHTML={
Object {
"__html": "<svg xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"-2.5 -2.5 105 105\\" fill=\\"none\\" stroke=\\"black\\">
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"></rect>
<rect x=\\"0\\" y=\\"0\\" width=\\"100\\" height=\\"100\\"/>
</svg>",
}
}

View file

@ -3,59 +3,59 @@
exports[`Canvas Shareable Workpad API Placed successfully with default properties 1`] = `"<div kbn-canvas-shareable=\\"canvas\\" kbn-canvas-url=\\"workpad.json\\"></div>"`;
exports[`Canvas Shareable Workpad API Placed successfully with default properties 2`] = `
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 720px; width: 1080px; }</style><div class=\\"root\\" style=\\"height: 768px; width: 1080px;\\"><div class=\\"container\\" style=\\"height: 720px; width: 1080px;\\"><div class=\\"page\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 720px; width: 1080px; }</style><div class=\\"root\\" style=\\"height: 768px; width: 1080px;\\"><div class=\\"container\\" style=\\"height: 720px; width: 1080px;\\"><div class=\\"page\\" style=\\"height: 720px; transform: scale3d(1, 1, 1); width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px; transform: scale3d(0.1388888888888889, 0.1388888888888889, 1);\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"flex-shrink: 0;\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
`;
exports[`Canvas Shareable Workpad API Placed successfully with height specified 1`] = `"<div kbn-canvas-shareable=\\"canvas\\" kbn-canvas-height=\\"350\\" kbn-canvas-url=\\"workpad.json\\"></div>"`;
exports[`Canvas Shareable Workpad API Placed successfully with height specified 2`] = `
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 350px; width: 525px; }</style><div class=\\"root\\" style=\\"height: 398px; width: 525px;\\"><div class=\\"container\\" style=\\"height: 350px; width: 525px;\\"><div class=\\"page\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 350px; width: 525px; }</style><div class=\\"root\\" style=\\"height: 398px; width: 525px;\\"><div class=\\"container\\" style=\\"height: 350px; width: 525px;\\"><div class=\\"page\\" style=\\"height: 720px; transform: scale3d(0.48611111111111116, 0.4861111111111111, 1); width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px; transform: scale3d(0.1388888888888889, 0.1388888888888889, 1);\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"flex-shrink: 0;\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
`;
exports[`Canvas Shareable Workpad API Placed successfully with page specified 1`] = `"<div kbn-canvas-shareable=\\"canvas\\" kbn-canvas-page=\\"0\\" kbn-canvas-url=\\"workpad.json\\"></div>"`;
exports[`Canvas Shareable Workpad API Placed successfully with page specified 2`] = `
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 720px; width: 1080px; }</style><div class=\\"root\\" style=\\"height: 768px; width: 1080px;\\"><div class=\\"container\\" style=\\"height: 720px; width: 1080px;\\"><div class=\\"page\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 720px; width: 1080px; }</style><div class=\\"root\\" style=\\"height: 768px; width: 1080px;\\"><div class=\\"container\\" style=\\"height: 720px; width: 1080px;\\"><div class=\\"page\\" style=\\"height: 720px; transform: scale3d(1, 1, 1); width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px; transform: scale3d(0.1388888888888889, 0.1388888888888889, 1);\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"flex-shrink: 0;\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
`;
exports[`Canvas Shareable Workpad API Placed successfully with width and height specified 1`] = `"<div kbn-canvas-shareable=\\"canvas\\" kbn-canvas-width=\\"350\\" kbn-canvas-height=\\"350\\" kbn-canvas-url=\\"workpad.json\\"></div>"`;
exports[`Canvas Shareable Workpad API Placed successfully with width and height specified 2`] = `
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 350px; width: 350px; }</style><div class=\\"root\\" style=\\"height: 398px; width: 350px;\\"><div class=\\"container\\" style=\\"height: 350px; width: 350px;\\"><div class=\\"page\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 350px; width: 350px; }</style><div class=\\"root\\" style=\\"height: 398px; width: 350px;\\"><div class=\\"container\\" style=\\"height: 350px; width: 350px;\\"><div class=\\"page\\" style=\\"height: 720px; transform: scale3d(0.32407407407407407, 0.32407407407407407, 1); width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px; transform: scale3d(0.1388888888888889, 0.1388888888888889, 1);\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"flex-shrink: 0;\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
`;
exports[`Canvas Shareable Workpad API Placed successfully with width specified 1`] = `"<div kbn-canvas-shareable=\\"canvas\\" kbn-canvas-width=\\"400\\" kbn-canvas-url=\\"workpad.json\\"></div>"`;
exports[`Canvas Shareable Workpad API Placed successfully with width specified 2`] = `
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 267px; width: 400px; }</style><div class=\\"root\\" style=\\"height: 315px; width: 400px;\\"><div class=\\"container\\" style=\\"height: 267px; width: 400px;\\"><div class=\\"page\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
"<div class=\\"kbnCanvas\\"><style>html body .kbnCanvas { height: 267px; width: 400px; }</style><div class=\\"root\\" style=\\"height: 315px; width: 400px;\\"><div class=\\"container\\" style=\\"height: 267px; width: 400px;\\"><div class=\\"page\\" style=\\"height: 720px; transform: scale3d(0.37037037037037035, 0.37037037037037035, 1); width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px; transform: scale3d(0.1388888888888889, 0.1388888888888889, 1);\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"flex-shrink: 0;\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div></div>"
`;

View file

@ -1,11 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<App /> App renders properly 1`] = `
"<div class=\\"root\\" style=\\"height: 768px; width: 1080px;\\"><div class=\\"container\\" style=\\"height: 720px; width: 1080px;\\"><div class=\\"page\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
"<div class=\\"root\\" style=\\"height: 768px; width: 1080px;\\"><div class=\\"container\\" style=\\"height: 720px; width: 1080px;\\"><div class=\\"page\\" style=\\"height: 720px; transform: scale3d(1, 1, 1); width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px;\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute;\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div><div class=\\"root\\" style=\\"height: 48px;\\"><div class=\\"root\\"><div class=\\"slideContainer\\"><div class=\\"root\\" style=\\"height: 100px; width: 150px;\\"><div class=\\"preview\\" style=\\"height: 720px; width: 1080px; transform: scale3d(0.1388888888888889, 0.1388888888888889, 1);\\"><div id=\\"page-7186b301-f8a7-4c65-8b89-38d68d31cfc4\\" class=\\"root\\" style=\\"height: 720px; width: 1080px; background: rgb(119, 119, 119);\\"><div class=\\"canvasPositionable canvasInteractable\\" style=\\"width: 1082px; height: 205.37748344370857px; margin-left: -541px; margin-top: -102.68874172185429px; position: absolute; transform: matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,540,367,1,1);\\"><div class=\\"root\\"><div class=\\"container s2042575598\\" style=\\"overflow: hidden;\\"><style type=\\"text/css\\">.s2042575598 .canvasRenderEl h1 {
font-size: 150px; text-align: center; color: #d3d3d3;
}
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div>"
</style><div class=\\"content\\"><div class=\\"renderContainer\\"><div data-renderer=\\"markdown\\" class=\\"render\\"><div>markdown mock</div></div></div></div></div></div></div></div></div></div></div></div><div class=\\"bar\\" style=\\"bottom: 0px;\\"><div class=\\"euiFlexGroup euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem title\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"flex-shrink: 0;\\"><a class=\\"euiLink euiLink--primary\\" href=\\"https://www.elastic.co\\" rel=\\"\\" title=\\"Powered by Elastic.co\\"><div data-euiicon-type=\\"logoElastic\\"></div></a></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\" style=\\"min-width: 0; cursor: default;\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\"><div class=\\"eui-textTruncate\\">My Canvas Workpad</div></div></div></div></div></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiFlexGroup euiFlexGroup--gutterSmall euiFlexGroup--directionRow euiFlexGroup--responsive\\"><div class=\\"euiFlexGroup euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow euiFlexGroup--responsive\\" style=\\"margin: 0px 12px;\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsPrevPage\\" aria-label=\\"Previous Page\\"><div data-euiicon-type=\\"arrowLeft\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button class=\\"euiButtonEmpty euiButtonEmpty--ghost euiButtonEmpty--small\\" type=\\"button\\" data-test-subj=\\"pageControlsCurrentPage\\"><span class=\\"euiButtonEmpty__content\\"><span class=\\"euiButtonEmpty__text\\"><div class=\\"euiText euiText--small\\"><div class=\\"euiTextColor euiTextColor--ghost\\">Page 1</div></div></span></span></button></div><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><button disabled=\\"\\" class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" data-test-subj=\\"pageControlsNextPage\\" aria-label=\\"Next Page\\"><div data-euiicon-type=\\"arrowRight\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div><div class=\\"euiFlexGroup euiFlexGroup--alignItemsFlexEnd euiFlexGroup--justifyContentCenter euiFlexGroup--directionColumn euiFlexGroup--responsive\\"><div class=\\"euiFlexItem euiFlexItem--flexGrowZero\\"><div class=\\"euiPopover euiPopover--anchorUpRight euiPopover--withTitle\\" id=\\"settings\\"><div class=\\"euiPopover__anchor\\"><button class=\\"euiButtonIcon euiButtonIcon--ghost\\" type=\\"button\\" aria-label=\\"Settings\\"><div data-euiicon-type=\\"gear\\" class=\\"euiButtonIcon__icon\\" aria-hidden=\\"true\\"></div></button></div></div></div></div></div></div></div></div></div></div>"
`;

View file

@ -4,7 +4,11 @@
* you may not use this file except in compliance with the Elastic License.
*/
jest.mock('../../../app/services/breadcrumbs', () => ({
...jest.requireActual('../../../app/services/breadcrumbs'),
setBreadcrumbs: jest.fn(),
}));
jest.mock('../../../app/services/breadcrumbs', () => {
const original = jest.requireActual('../../../app/services/breadcrumbs');
return {
...original,
setBreadcrumbs: jest.fn(),
};
});

View file

@ -4,10 +4,14 @@
* you may not use this file except in compliance with the Elastic License.
*/
jest.mock('../../../app/services/track_ui_metric', () => ({
...jest.requireActual('../../../app/services/track_ui_metric'),
trackUiMetric: jest.fn(),
trackUserRequest: (request: Promise<any>) => {
return request.then((response) => response);
},
}));
jest.mock('../../../app/services/track_ui_metric', () => {
const original = jest.requireActual('../../../app/services/track_ui_metric');
return {
...original,
trackUiMetric: jest.fn(),
trackUserRequest: (request: Promise<any>) => {
return request.then((response) => response);
},
};
});

View file

@ -10,7 +10,6 @@ import { MenuItem } from './menu_item';
import { createStateContainer } from '../../../../../../../../src/plugins/kibana_utils/public';
import { UiActionsEnhancedDynamicActionManager as DynamicActionManager } from '../../../../../../ui_actions_enhanced/public';
import { EnhancedEmbeddable } from '../../../../../../embeddable_enhanced/public';
import '@testing-library/jest-dom';
afterEach(cleanup);

View file

@ -10,7 +10,11 @@ jest.doMock('./fetch_server_results', () => ({
}));
export const getDefaultPreferenceMock = jest.fn();
jest.doMock('./utils', () => ({
...jest.requireActual('./utils'),
getDefaultPreference: getDefaultPreferenceMock,
}));
jest.doMock('./utils', () => {
const original = jest.requireActual('./utils');
return {
...original,
getDefaultPreference: getDefaultPreferenceMock,
};
});

View file

@ -495,7 +495,7 @@ exports[`extend index management ilm summary extension should return extension w
<EuiPopover
anchorPosition="downCenter"
button={
<ForwardRef
<EuiLink
onClick={[Function]}
>
<FormattedMessage
@ -503,7 +503,7 @@ exports[`extend index management ilm summary extension should return extension w
id="xpack.indexLifecycleMgmt.indexLifecycleMgmtSummary.showPhaseDefinitionButton"
values={Object {}}
/>
</ForwardRef>
</EuiLink>
}
closePopover={[Function]}
display="inlineBlock"

View file

@ -14,28 +14,32 @@ import { TEMPLATE_NAME, INDEX_PATTERNS as DEFAULT_INDEX_PATTERNS, MAPPINGS } fro
import { setup } from './template_clone.helpers';
import { TemplateFormTestBed } from './template_form.helpers';
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj="mockComboBox"
onChange={async (syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj="mockComboBox"
onChange={async (syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
};
});
// FLAKY: https://github.com/elastic/kibana/issues/59849
describe.skip('<TemplateClone />', () => {

View file

@ -20,28 +20,32 @@ import {
import { setup } from './template_create.helpers';
import { TemplateFormTestBed } from './template_form.helpers';
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj="mockComboBox"
onChange={(syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj="mockComboBox"
onChange={(syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
};
});
const TEXT_MAPPING_FIELD = {
name: 'text_datatype',

View file

@ -25,28 +25,32 @@ const MAPPING = {
},
};
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj="mockComboBox"
onChange={(syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const origial = jest.requireActual('@elastic/eui');
return {
...origial,
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj="mockComboBox"
onChange={(syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
};
});
// FLAKY: https://github.com/elastic/kibana/issues/65567
describe.skip('<TemplateEdit />', () => {

View file

@ -82,7 +82,7 @@ describe.skip('Mappings editor: text datatype', () => {
({ data } = await getMappingsEditorData(component));
expect(data).toEqual(updatedMappings);
});
}, 10000);
test('analyzer parameter: default values', async () => {
const defaultMappings = {
@ -210,7 +210,7 @@ describe.skip('Mappings editor: text datatype', () => {
expect(indexAnalyzerValue).toBe('standard');
expect(searchAnalyzerValue).toBe('simple');
expect(searchQuoteAnalyzerValue).toBe('whitespace');
}, 10000);
}, 50000);
test('analyzer parameter: custom analyzer (external plugin)', async () => {
const defaultMappings = {
@ -303,7 +303,7 @@ describe.skip('Mappings editor: text datatype', () => {
};
expect(data).toEqual(updatedMappings);
});
}, 100000);
test('analyzer parameter: custom analyzer (from index settings)', async () => {
const indexSettings = {
@ -394,5 +394,5 @@ describe.skip('Mappings editor: text datatype', () => {
};
expect(data).toEqual(updatedMappings);
});
}, 50000);
});

View file

@ -109,5 +109,5 @@ describe('Mappings editor: edit field', () => {
};
expect(data).toEqual(updatedMappings);
});
}, 50000);
});

View file

@ -11,41 +11,45 @@ import { registerTestBed, TestBed } from '../../../../../../../../../test_utils'
import { getChildFieldsName } from '../../../lib';
import { MappingsEditor } from '../../../mappings_editor';
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockComboBox'}
data-currentvalue={props.selectedOptions}
onChange={async (syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockCodeEditor'}
data-currentvalue={props.value}
onChange={(e: any) => {
props.onChange(e.jsonContent);
}}
/>
),
// Mocking EuiSuperSelect to be able to easily change its value
// with a `myWrapper.simulate('change', { target: { value: 'someValue' } })`
EuiSuperSelect: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockSuperSelect'}
value={props.valueOfSelected}
onChange={(e) => {
props.onChange(e.target.value);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
// Mocking EuiComboBox, as it utilizes "react-virtualized" for rendering search suggestions,
// which does not produce a valid component wrapper
EuiComboBox: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockComboBox'}
data-currentvalue={props.selectedOptions}
onChange={async (syntheticEvent: any) => {
props.onChange([syntheticEvent['0']]);
}}
/>
),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockCodeEditor'}
data-currentvalue={props.value}
onChange={(e: any) => {
props.onChange(e.jsonContent);
}}
/>
),
// Mocking EuiSuperSelect to be able to easily change its value
// with a `myWrapper.simulate('change', { target: { value: 'someValue' } })`
EuiSuperSelect: (props: any) => (
<input
data-test-subj={props['data-test-subj'] || 'mockSuperSelect'}
value={props.valueOfSelected}
onChange={(e) => {
props.onChange(e.target.value);
}}
/>
),
};
});
export interface DomFields {
[key: string]: {

View file

@ -6,23 +6,31 @@
import React from 'react';
import { act } from 'react-dom/test-utils';
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
jest.mock('lodash', () => ({
...jest.requireActual('lodash'),
debounce: (fn: any) => fn,
}));
return {
...original,
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj="mockCodeEditor"
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
};
});
jest.mock('lodash', () => {
const original = jest.requireActual('lodash');
return {
...original,
debounce: (fn: any) => fn,
};
});
import { registerTestBed, TestBed } from '../../../../../../../../test_utils';
import { LoadMappingsProvider } from './load_mappings_provider';

View file

@ -11,18 +11,22 @@ import { PIPELINE_TO_CLONE, PipelinesCloneTestBed } from './helpers/pipelines_cl
const { setup } = pageHelpers.pipelinesClone;
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj={props['data-test-subj']}
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj={props['data-test-subj']}
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
};
});
// FLAKY: https://github.com/elastic/kibana/issues/66856
describe.skip('<PipelinesClone />', () => {

View file

@ -11,18 +11,22 @@ import { PipelinesCreateTestBed } from './helpers/pipelines_create.helpers';
const { setup } = pageHelpers.pipelinesCreate;
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj={props['data-test-subj']}
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
}));
jest.mock('@elastic/eui', () => {
const original = jest.requireActual('@elastic/eui');
return {
...original,
// Mocking EuiCodeEditor, which uses React Ace under the hood
EuiCodeEditor: (props: any) => (
<input
data-test-subj={props['data-test-subj']}
onChange={(syntheticEvent: any) => {
props.onChange(syntheticEvent.jsonString);
}}
/>
),
};
});
describe('<PipelinesCreate />', () => {
let testBed: PipelinesCreateTestBed;

Some files were not shown because too many files have changed in this diff Show more