@elastic/eui-test-helpers 2.2.0-snapshot.1794195065697 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +2 -0
  2. package/lib/cjs/components/card/selectors.d.ts +15 -0
  3. package/lib/cjs/components/card/selectors.js +29 -0
  4. package/lib/cjs/components/markdown_editor/selectors.d.ts +17 -0
  5. package/lib/cjs/components/markdown_editor/selectors.js +31 -0
  6. package/lib/cjs/index.d.ts +2 -0
  7. package/lib/cjs/index.js +26 -12
  8. package/lib/cjs/playwright/components/card/object.d.ts +23 -0
  9. package/lib/cjs/playwright/components/card/object.js +69 -0
  10. package/lib/cjs/playwright/components/markdown_editor/object.d.ts +24 -0
  11. package/lib/cjs/playwright/components/markdown_editor/object.js +70 -0
  12. package/lib/cjs/selectors.d.ts +13 -0
  13. package/lib/cjs/selectors.js +46 -42
  14. package/lib/esm/components/card/selectors.d.ts +15 -0
  15. package/lib/esm/components/card/selectors.js +23 -0
  16. package/lib/esm/components/card/selectors.js.map +1 -0
  17. package/lib/esm/components/markdown_editor/selectors.d.ts +17 -0
  18. package/lib/esm/components/markdown_editor/selectors.js +25 -0
  19. package/lib/esm/components/markdown_editor/selectors.js.map +1 -0
  20. package/lib/esm/index.d.ts +2 -0
  21. package/lib/esm/index.js +2 -0
  22. package/lib/esm/index.js.map +1 -1
  23. package/lib/esm/playwright/components/card/object.d.ts +23 -0
  24. package/lib/esm/playwright/components/card/object.js +54 -0
  25. package/lib/esm/playwright/components/card/object.js.map +1 -0
  26. package/lib/esm/playwright/components/markdown_editor/object.d.ts +24 -0
  27. package/lib/esm/playwright/components/markdown_editor/object.js +57 -0
  28. package/lib/esm/playwright/components/markdown_editor/object.js.map +1 -0
  29. package/lib/esm/selectors.d.ts +13 -0
  30. package/lib/esm/selectors.js +4 -0
  31. package/lib/esm/selectors.js.map +1 -1
  32. package/package.json +2 -3
  33. package/src/components/card/README.md +30 -0
  34. package/src/components/markdown_editor/README.md +30 -0
package/README.md CHANGED
@@ -64,9 +64,11 @@ their own version at runtime.
64
64
  | `EuiModalObject` | [src/components/modal/README.md](src/components/modal/README.md) |
65
65
  | `EuiTableObject` | [src/components/table/README.md](src/components/table/README.md) |
66
66
  | `EuiTabsObject` | [src/components/tabs/README.md](src/components/tabs/README.md) |
67
+ | `EuiMarkdownEditorObject` | [src/components/markdown_editor/README.md](src/components/markdown_editor/README.md) |
67
68
  | `EuiPaginationObject` | [src/components/pagination/README.md](src/components/pagination/README.md) |
68
69
  | `EuiBasicTableObject` | [src/components/basic_table/README.md](src/components/basic_table/README.md) |
69
70
  | `EuiCallOutObject` | [src/components/call_out/README.md](src/components/call_out/README.md) |
71
+ | `EuiCardObject` | [src/components/card/README.md](src/components/card/README.md) |
70
72
  | `EuiColorPickerObject` | [src/components/color_picker/README.md](src/components/color_picker/README.md) |
71
73
  | `EuiTreeViewObject` | [src/components/tree_view/README.md](src/components/tree_view/README.md) |
72
74
  | `EuiToolTipObject` | [src/components/tool_tip/README.md](src/components/tool_tip/README.md) |
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Stable selectors for
3
+ * {@link https://eui.elastic.co/docs/components/display/card/|EuiCard}.
4
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
5
+ */
6
+ export declare const EuiCardSelectors: {
7
+ /** The panel carrying the consumer's `data-test-subj`. */
8
+ ROOT_SELECTOR: string;
9
+ /** The title element, wrapping a link or button when the card is clickable. */
10
+ TITLE_SELECTOR: string;
11
+ /** The description text, rendered only when `description` is set. */
12
+ DESCRIPTION_SELECTOR: string;
13
+ /** The `selectable` toggle button, a `role="switch"` with `aria-checked`, direct child of the panel. */
14
+ SELECT_BUTTON_SELECTOR: string;
15
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiCardSelectors = void 0;
7
+ /*
8
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
+ * or more contributor license agreements. Licensed under the Elastic License
10
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
12
+ * Side Public License, v 1.
13
+ */
14
+
15
+ /**
16
+ * Stable selectors for
17
+ * {@link https://eui.elastic.co/docs/components/display/card/|EuiCard}.
18
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
19
+ */
20
+ const EuiCardSelectors = exports.EuiCardSelectors = {
21
+ /** The panel carrying the consumer's `data-test-subj`. */
22
+ ROOT_SELECTOR: '.euiCard',
23
+ /** The title element, wrapping a link or button when the card is clickable. */
24
+ TITLE_SELECTOR: '.euiCard__title',
25
+ /** The description text, rendered only when `description` is set. */
26
+ DESCRIPTION_SELECTOR: '.euiCard__content > .euiText',
27
+ /** The `selectable` toggle button, a `role="switch"` with `aria-checked`, direct child of the panel. */
28
+ SELECT_BUTTON_SELECTOR: 'button[role="switch"]'
29
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Stable selectors for
3
+ * {@link https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/|EuiMarkdownEditor}.
4
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
5
+ */
6
+ export declare const EuiMarkdownEditorSelectors: {
7
+ /** The wrapper carrying the consumer's `data-test-subj`. */
8
+ ROOT_SELECTOR: string;
9
+ /** The `<textarea>` holding the markdown source. */
10
+ TEXT_AREA_SELECTOR: string;
11
+ /** The rendered markdown, only in the DOM while previewing. */
12
+ PREVIEW_SELECTOR: string;
13
+ /** The toolbar button that switches to preview. */
14
+ PREVIEW_BUTTON_TEST_SUBJ: string;
15
+ /** The toolbar button that switches back to editing. */
16
+ EDIT_BUTTON_TEST_SUBJ: string;
17
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiMarkdownEditorSelectors = void 0;
7
+ /*
8
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
+ * or more contributor license agreements. Licensed under the Elastic License
10
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
12
+ * Side Public License, v 1.
13
+ */
14
+
15
+ /**
16
+ * Stable selectors for
17
+ * {@link https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/|EuiMarkdownEditor}.
18
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
19
+ */
20
+ const EuiMarkdownEditorSelectors = exports.EuiMarkdownEditorSelectors = {
21
+ /** The wrapper carrying the consumer's `data-test-subj`. */
22
+ ROOT_SELECTOR: '.euiMarkdownEditor',
23
+ /** The `<textarea>` holding the markdown source. */
24
+ TEXT_AREA_SELECTOR: '.euiMarkdownEditorTextArea',
25
+ /** The rendered markdown, only in the DOM while previewing. */
26
+ PREVIEW_SELECTOR: '.euiMarkdownEditorPreview',
27
+ /** The toolbar button that switches to preview. */
28
+ PREVIEW_BUTTON_TEST_SUBJ: 'markdown_editor_edit_button',
29
+ /** The toolbar button that switches back to editing. */
30
+ EDIT_BUTTON_TEST_SUBJ: 'markdown_editor_preview_button'
31
+ };
@@ -17,9 +17,11 @@ export { EuiContextMenuObject } from './playwright/components/context_menu/objec
17
17
  export { EuiModalObject } from './playwright/components/modal/object';
18
18
  export { EuiTableObject } from './playwright/components/table/object';
19
19
  export { EuiTabsObject } from './playwright/components/tabs/object';
20
+ export { EuiMarkdownEditorObject } from './playwright/components/markdown_editor/object';
20
21
  export { EuiPaginationObject } from './playwright/components/pagination/object';
21
22
  export { EuiBasicTableObject } from './playwright/components/basic_table/object';
22
23
  export { EuiCallOutObject } from './playwright/components/call_out/object';
24
+ export { EuiCardObject } from './playwright/components/card/object';
23
25
  export { EuiColorPickerObject } from './playwright/components/color_picker/object';
24
26
  export { EuiTreeViewObject } from './playwright/components/tree_view/object';
25
27
  export { EuiToolTipObject } from './playwright/components/tool_tip/object';
package/lib/cjs/index.js CHANGED
@@ -18,19 +18,25 @@ Object.defineProperty(exports, "EuiAccordionObject", {
18
18
  Object.defineProperty(exports, "EuiBasicTableObject", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _object20.EuiBasicTableObject;
21
+ return _object21.EuiBasicTableObject;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "EuiCallOutObject", {
25
25
  enumerable: true,
26
26
  get: function () {
27
- return _object21.EuiCallOutObject;
27
+ return _object22.EuiCallOutObject;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "EuiCardObject", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _object23.EuiCardObject;
28
34
  }
29
35
  });
30
36
  Object.defineProperty(exports, "EuiColorPickerObject", {
31
37
  enumerable: true,
32
38
  get: function () {
33
- return _object22.EuiColorPickerObject;
39
+ return _object24.EuiColorPickerObject;
34
40
  }
35
41
  });
36
42
  Object.defineProperty(exports, "EuiComboBoxObject", {
@@ -81,6 +87,12 @@ Object.defineProperty(exports, "EuiGlobalToastListObject", {
81
87
  return _object4.EuiGlobalToastListObject;
82
88
  }
83
89
  });
90
+ Object.defineProperty(exports, "EuiMarkdownEditorObject", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _object19.EuiMarkdownEditorObject;
94
+ }
95
+ });
84
96
  Object.defineProperty(exports, "EuiModalObject", {
85
97
  enumerable: true,
86
98
  get: function () {
@@ -90,7 +102,7 @@ Object.defineProperty(exports, "EuiModalObject", {
90
102
  Object.defineProperty(exports, "EuiPaginationObject", {
91
103
  enumerable: true,
92
104
  get: function () {
93
- return _object19.EuiPaginationObject;
105
+ return _object20.EuiPaginationObject;
94
106
  }
95
107
  });
96
108
  Object.defineProperty(exports, "EuiPopoverObject", {
@@ -144,13 +156,13 @@ Object.defineProperty(exports, "EuiTabsObject", {
144
156
  Object.defineProperty(exports, "EuiToolTipObject", {
145
157
  enumerable: true,
146
158
  get: function () {
147
- return _object24.EuiToolTipObject;
159
+ return _object26.EuiToolTipObject;
148
160
  }
149
161
  });
150
162
  Object.defineProperty(exports, "EuiTreeViewObject", {
151
163
  enumerable: true,
152
164
  get: function () {
153
- return _object23.EuiTreeViewObject;
165
+ return _object25.EuiTreeViewObject;
154
166
  }
155
167
  });
156
168
  Object.defineProperty(exports, "selectors", {
@@ -178,10 +190,12 @@ var _object15 = require("./playwright/components/context_menu/object");
178
190
  var _object16 = require("./playwright/components/modal/object");
179
191
  var _object17 = require("./playwright/components/table/object");
180
192
  var _object18 = require("./playwright/components/tabs/object");
181
- var _object19 = require("./playwright/components/pagination/object");
182
- var _object20 = require("./playwright/components/basic_table/object");
183
- var _object21 = require("./playwright/components/call_out/object");
184
- var _object22 = require("./playwright/components/color_picker/object");
185
- var _object23 = require("./playwright/components/tree_view/object");
186
- var _object24 = require("./playwright/components/tool_tip/object");
193
+ var _object19 = require("./playwright/components/markdown_editor/object");
194
+ var _object20 = require("./playwright/components/pagination/object");
195
+ var _object21 = require("./playwright/components/basic_table/object");
196
+ var _object22 = require("./playwright/components/call_out/object");
197
+ var _object23 = require("./playwright/components/card/object");
198
+ var _object24 = require("./playwright/components/color_picker/object");
199
+ var _object25 = require("./playwright/components/tree_view/object");
200
+ var _object26 = require("./playwright/components/tool_tip/object");
187
201
  var _selectors = require("./selectors");
@@ -0,0 +1,23 @@
1
+ import { type Locator } from '@playwright/test';
2
+ import { BaseObject, type ObjectScope } from '../../base_object';
3
+ /**
4
+ * Playwright Component Object for {@link
5
+ * https://eui.elastic.co/docs/components/display/card/ EuiCard}.
6
+ *
7
+ * `testSubj` must be set on `EuiCard` itself, EUI spreads it onto the panel.
8
+ */
9
+ export declare class EuiCardObject extends BaseObject {
10
+ constructor(scope: ObjectScope, testSubj: string, componentSelector?: string);
11
+ /** The `selectable` toggle button, absent on plain cards. */
12
+ get selectButton(): Locator;
13
+ /** The title text. */
14
+ getTitle(): Promise<string>;
15
+ /** The description text, or `null` when the card has none. */
16
+ getDescription(): Promise<string | null>;
17
+ /** Click the card, which follows `href` or fires `onClick`. */
18
+ click(): Promise<void>;
19
+ /** Whether the `selectable` toggle is checked. */
20
+ isSelected(): Promise<boolean>;
21
+ /** Click the `selectable` toggle and wait for it to flip. */
22
+ toggleSelected(): Promise<void>;
23
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiCardObject = void 0;
7
+ var _test = require("@playwright/test");
8
+ var _base_object = require("../../base_object");
9
+ var _selectors = require("../../../components/card/selectors");
10
+ /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+
18
+ /**
19
+ * Playwright Component Object for {@link
20
+ * https://eui.elastic.co/docs/components/display/card/ EuiCard}.
21
+ *
22
+ * `testSubj` must be set on `EuiCard` itself, EUI spreads it onto the panel.
23
+ */
24
+ class EuiCardObject extends _base_object.BaseObject {
25
+ constructor(scope, testSubj, componentSelector = _selectors.EuiCardSelectors.ROOT_SELECTOR) {
26
+ super(scope, testSubj, componentSelector);
27
+ }
28
+
29
+ /** The `selectable` toggle button, absent on plain cards. */
30
+ get selectButton() {
31
+ // A direct child, so switches in `children` or `footer` do not match.
32
+ return this.root.locator(`> ${_selectors.EuiCardSelectors.SELECT_BUTTON_SELECTOR}`);
33
+ }
34
+
35
+ /** The title text. */
36
+ async getTitle() {
37
+ return (await this.root.locator(_selectors.EuiCardSelectors.TITLE_SELECTOR).innerText()).trim();
38
+ }
39
+
40
+ /** The description text, or `null` when the card has none. */
41
+ async getDescription() {
42
+ await this.root.waitFor({
43
+ state: 'attached'
44
+ });
45
+ const description = this.root.locator(_selectors.EuiCardSelectors.DESCRIPTION_SELECTOR);
46
+ if ((await description.count()) === 0) {
47
+ return null;
48
+ }
49
+ return (await description.innerText()).trim();
50
+ }
51
+
52
+ /** Click the card, which follows `href` or fires `onClick`. */
53
+ async click() {
54
+ await this.root.click();
55
+ }
56
+
57
+ /** Whether the `selectable` toggle is checked. */
58
+ async isSelected() {
59
+ return (await this.selectButton.getAttribute('aria-checked')) === 'true';
60
+ }
61
+
62
+ /** Click the `selectable` toggle and wait for it to flip. */
63
+ async toggleSelected() {
64
+ const selected = await this.isSelected();
65
+ await this.selectButton.click();
66
+ await (0, _test.expect)(this.selectButton).toHaveAttribute('aria-checked', String(!selected));
67
+ }
68
+ }
69
+ exports.EuiCardObject = EuiCardObject;
@@ -0,0 +1,24 @@
1
+ import { type Locator } from '@playwright/test';
2
+ import { BaseObject, type ObjectScope } from '../../base_object';
3
+ /**
4
+ * Playwright Component Object for {@link
5
+ * https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/ EuiMarkdownEditor}.
6
+ *
7
+ * `testSubj` must be set on `EuiMarkdownEditor` itself, EUI spreads it onto
8
+ * the wrapper.
9
+ */
10
+ export declare class EuiMarkdownEditorObject extends BaseObject {
11
+ constructor(scope: ObjectScope, testSubj: string, componentSelector?: string);
12
+ /** The `<textarea>` holding the markdown source. */
13
+ get textArea(): Locator;
14
+ /** The rendered markdown, only in the DOM while previewing. */
15
+ get preview(): Locator;
16
+ /** Replace the markdown source. Switches back to editing first if needed. */
17
+ setValue(text: string): Promise<void>;
18
+ /** The current markdown source. */
19
+ getValue(): Promise<string>;
20
+ /** Whether the rendered preview is shown instead of the textarea. */
21
+ isPreviewing(): Promise<boolean>;
22
+ /** Switch between the textarea and the rendered preview. */
23
+ togglePreview(): Promise<void>;
24
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiMarkdownEditorObject = void 0;
7
+ var _test = require("@playwright/test");
8
+ var _base_object = require("../../base_object");
9
+ var _selectors = require("../../../components/markdown_editor/selectors");
10
+ /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+
18
+ /**
19
+ * Playwright Component Object for {@link
20
+ * https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/ EuiMarkdownEditor}.
21
+ *
22
+ * `testSubj` must be set on `EuiMarkdownEditor` itself, EUI spreads it onto
23
+ * the wrapper.
24
+ */
25
+ class EuiMarkdownEditorObject extends _base_object.BaseObject {
26
+ constructor(scope, testSubj, componentSelector = _selectors.EuiMarkdownEditorSelectors.ROOT_SELECTOR) {
27
+ super(scope, testSubj, componentSelector);
28
+ }
29
+
30
+ /** The `<textarea>` holding the markdown source. */
31
+ get textArea() {
32
+ return this.root.locator(_selectors.EuiMarkdownEditorSelectors.TEXT_AREA_SELECTOR);
33
+ }
34
+
35
+ /** The rendered markdown, only in the DOM while previewing. */
36
+ get preview() {
37
+ return this.root.locator(_selectors.EuiMarkdownEditorSelectors.PREVIEW_SELECTOR);
38
+ }
39
+
40
+ /** Replace the markdown source. Switches back to editing first if needed. */
41
+ async setValue(text) {
42
+ if (await this.isPreviewing()) {
43
+ await this.togglePreview();
44
+ }
45
+ await this.textArea.fill(text);
46
+ await (0, _test.expect)(this.textArea).toHaveValue(text);
47
+ }
48
+
49
+ /** The current markdown source. */
50
+ async getValue() {
51
+ return this.textArea.inputValue();
52
+ }
53
+
54
+ /** Whether the rendered preview is shown instead of the textarea. */
55
+ async isPreviewing() {
56
+ await this.root.waitFor({
57
+ state: 'attached'
58
+ });
59
+ return (await this.preview.count()) > 0;
60
+ }
61
+
62
+ /** Switch between the textarea and the rendered preview. */
63
+ async togglePreview() {
64
+ const previewing = await this.isPreviewing();
65
+ const button = previewing ? _selectors.EuiMarkdownEditorSelectors.EDIT_BUTTON_TEST_SUBJ : _selectors.EuiMarkdownEditorSelectors.PREVIEW_BUTTON_TEST_SUBJ;
66
+ await this.root.getByTestId(button).click();
67
+ await (0, _test.expect)(this.preview).toHaveCount(previewing ? 0 : 1);
68
+ }
69
+ }
70
+ exports.EuiMarkdownEditorObject = EuiMarkdownEditorObject;
@@ -23,6 +23,12 @@ export declare const selectors: {
23
23
  DISMISS_BUTTON_TEST_SUBJ: string;
24
24
  DISMISS_BUTTON_SELECTOR: string;
25
25
  };
26
+ readonly card: {
27
+ ROOT_SELECTOR: string;
28
+ TITLE_SELECTOR: string;
29
+ DESCRIPTION_SELECTOR: string;
30
+ SELECT_BUTTON_SELECTOR: string;
31
+ };
26
32
  readonly colorPicker: {
27
33
  ANCHOR_TEST_SUBJ: string;
28
34
  ANCHOR_SELECTOR: string;
@@ -79,6 +85,13 @@ export declare const selectors: {
79
85
  ROOT_SELECTOR: string;
80
86
  CLOSE_BUTTON_TEST_SUBJ: string;
81
87
  };
88
+ readonly markdownEditor: {
89
+ ROOT_SELECTOR: string;
90
+ TEXT_AREA_SELECTOR: string;
91
+ PREVIEW_SELECTOR: string;
92
+ PREVIEW_BUTTON_TEST_SUBJ: string;
93
+ EDIT_BUTTON_TEST_SUBJ: string;
94
+ };
82
95
  readonly modal: {
83
96
  ROOT_SELECTOR: string;
84
97
  CLOSE_BUTTON_SELECTOR: string;
@@ -7,27 +7,29 @@ exports.selectors = void 0;
7
7
  var _selectors = require("./components/accordion/selectors");
8
8
  var _selectors2 = require("./components/basic_table/selectors");
9
9
  var _selectors3 = require("./components/call_out/selectors");
10
- var _selectors4 = require("./components/color_picker/selectors");
11
- var _selectors5 = require("./components/combo_box/selectors");
12
- var _selectors6 = require("./components/context_menu/selectors");
13
- var _selectors7 = require("./components/datagrid/selectors");
14
- var _selectors8 = require("./components/drag_and_drop/selectors");
15
- var _selectors9 = require("./components/form/field_search/selectors");
16
- var _selectors10 = require("./components/filter_button/selectors");
17
- var _selectors11 = require("./components/flyout/selectors");
18
- var _selectors12 = require("./components/modal/selectors");
19
- var _selectors13 = require("./components/pagination/selectors");
20
- var _selectors14 = require("./components/popover/selectors");
21
- var _selectors15 = require("./components/form/range/selectors");
22
- var _selectors16 = require("./components/search_bar/selectors");
23
- var _selectors17 = require("./components/selectable/selectors");
24
- var _selectors18 = require("./components/side_nav/selectors");
25
- var _selectors19 = require("./components/form/super_select/selectors");
26
- var _selectors20 = require("./components/table/selectors");
27
- var _selectors21 = require("./components/tabs/selectors");
28
- var _selectors22 = require("./components/toast/selectors");
29
- var _selectors23 = require("./components/tool_tip/selectors");
30
- var _selectors24 = require("./components/tree_view/selectors");
10
+ var _selectors4 = require("./components/card/selectors");
11
+ var _selectors5 = require("./components/color_picker/selectors");
12
+ var _selectors6 = require("./components/combo_box/selectors");
13
+ var _selectors7 = require("./components/context_menu/selectors");
14
+ var _selectors8 = require("./components/datagrid/selectors");
15
+ var _selectors9 = require("./components/drag_and_drop/selectors");
16
+ var _selectors10 = require("./components/form/field_search/selectors");
17
+ var _selectors11 = require("./components/filter_button/selectors");
18
+ var _selectors12 = require("./components/flyout/selectors");
19
+ var _selectors13 = require("./components/markdown_editor/selectors");
20
+ var _selectors14 = require("./components/modal/selectors");
21
+ var _selectors15 = require("./components/pagination/selectors");
22
+ var _selectors16 = require("./components/popover/selectors");
23
+ var _selectors17 = require("./components/form/range/selectors");
24
+ var _selectors18 = require("./components/search_bar/selectors");
25
+ var _selectors19 = require("./components/selectable/selectors");
26
+ var _selectors20 = require("./components/side_nav/selectors");
27
+ var _selectors21 = require("./components/form/super_select/selectors");
28
+ var _selectors22 = require("./components/table/selectors");
29
+ var _selectors23 = require("./components/tabs/selectors");
30
+ var _selectors24 = require("./components/toast/selectors");
31
+ var _selectors25 = require("./components/tool_tip/selectors");
32
+ var _selectors26 = require("./components/tree_view/selectors");
31
33
  /*
32
34
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
33
35
  * or more contributor license agreements. Licensed under the Elastic License
@@ -46,25 +48,27 @@ const selectors = exports.selectors = {
46
48
  accordion: _selectors.EuiAccordionSelectors,
47
49
  basicTable: _selectors2.EuiBasicTableSelectors,
48
50
  callOut: _selectors3.EuiCallOutSelectors,
49
- colorPicker: _selectors4.EuiColorPickerSelectors,
50
- comboBox: _selectors5.EuiComboBoxSelectors,
51
- contextMenu: _selectors6.EuiContextMenuSelectors,
52
- dataGrid: _selectors7.EuiDataGridSelectors,
53
- draggable: _selectors8.EuiDraggableSelectors,
54
- fieldSearch: _selectors9.EuiFieldSearchSelectors,
55
- filterButton: _selectors10.EuiFilterButtonSelectors,
56
- flyout: _selectors11.EuiFlyoutSelectors,
57
- modal: _selectors12.EuiModalSelectors,
58
- pagination: _selectors13.EuiPaginationSelectors,
59
- popover: _selectors14.EuiPopoverSelectors,
60
- range: _selectors15.EuiRangeSelectors,
61
- searchBar: _selectors16.EuiSearchBarSelectors,
62
- selectable: _selectors17.EuiSelectableSelectors,
63
- sideNav: _selectors18.EuiSideNavSelectors,
64
- superSelect: _selectors19.EuiSuperSelectSelectors,
65
- table: _selectors20.EuiTableSelectors,
66
- tabs: _selectors21.EuiTabsSelectors,
67
- globalToastList: _selectors22.EuiGlobalToastListSelectors,
68
- toolTip: _selectors23.EuiToolTipSelectors,
69
- treeView: _selectors24.EuiTreeViewSelectors
51
+ card: _selectors4.EuiCardSelectors,
52
+ colorPicker: _selectors5.EuiColorPickerSelectors,
53
+ comboBox: _selectors6.EuiComboBoxSelectors,
54
+ contextMenu: _selectors7.EuiContextMenuSelectors,
55
+ dataGrid: _selectors8.EuiDataGridSelectors,
56
+ draggable: _selectors9.EuiDraggableSelectors,
57
+ fieldSearch: _selectors10.EuiFieldSearchSelectors,
58
+ filterButton: _selectors11.EuiFilterButtonSelectors,
59
+ flyout: _selectors12.EuiFlyoutSelectors,
60
+ markdownEditor: _selectors13.EuiMarkdownEditorSelectors,
61
+ modal: _selectors14.EuiModalSelectors,
62
+ pagination: _selectors15.EuiPaginationSelectors,
63
+ popover: _selectors16.EuiPopoverSelectors,
64
+ range: _selectors17.EuiRangeSelectors,
65
+ searchBar: _selectors18.EuiSearchBarSelectors,
66
+ selectable: _selectors19.EuiSelectableSelectors,
67
+ sideNav: _selectors20.EuiSideNavSelectors,
68
+ superSelect: _selectors21.EuiSuperSelectSelectors,
69
+ table: _selectors22.EuiTableSelectors,
70
+ tabs: _selectors23.EuiTabsSelectors,
71
+ globalToastList: _selectors24.EuiGlobalToastListSelectors,
72
+ toolTip: _selectors25.EuiToolTipSelectors,
73
+ treeView: _selectors26.EuiTreeViewSelectors
70
74
  };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Stable selectors for
3
+ * {@link https://eui.elastic.co/docs/components/display/card/|EuiCard}.
4
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
5
+ */
6
+ export declare const EuiCardSelectors: {
7
+ /** The panel carrying the consumer's `data-test-subj`. */
8
+ ROOT_SELECTOR: string;
9
+ /** The title element, wrapping a link or button when the card is clickable. */
10
+ TITLE_SELECTOR: string;
11
+ /** The description text, rendered only when `description` is set. */
12
+ DESCRIPTION_SELECTOR: string;
13
+ /** The `selectable` toggle button, a `role="switch"` with `aria-checked`, direct child of the panel. */
14
+ SELECT_BUTTON_SELECTOR: string;
15
+ };
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ /**
9
+ * Stable selectors for
10
+ * {@link https://eui.elastic.co/docs/components/display/card/|EuiCard}.
11
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
12
+ */
13
+ export const EuiCardSelectors = {
14
+ /** The panel carrying the consumer's `data-test-subj`. */
15
+ ROOT_SELECTOR: '.euiCard',
16
+ /** The title element, wrapping a link or button when the card is clickable. */
17
+ TITLE_SELECTOR: '.euiCard__title',
18
+ /** The description text, rendered only when `description` is set. */
19
+ DESCRIPTION_SELECTOR: '.euiCard__content > .euiText',
20
+ /** The `selectable` toggle button, a `role="switch"` with `aria-checked`, direct child of the panel. */
21
+ SELECT_BUTTON_SELECTOR: 'button[role="switch"]',
22
+ };
23
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../../src/components/card/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,0DAA0D;IAC1D,aAAa,EAAE,UAAU;IAEzB,+EAA+E;IAC/E,cAAc,EAAE,iBAAiB;IAEjC,qEAAqE;IACrE,oBAAoB,EAAE,8BAA8B;IAEpD,wGAAwG;IACxG,sBAAsB,EAAE,uBAAuB;CAChD,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Stable selectors for
3
+ * {@link https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/|EuiMarkdownEditor}.
4
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
5
+ */
6
+ export declare const EuiMarkdownEditorSelectors: {
7
+ /** The wrapper carrying the consumer's `data-test-subj`. */
8
+ ROOT_SELECTOR: string;
9
+ /** The `<textarea>` holding the markdown source. */
10
+ TEXT_AREA_SELECTOR: string;
11
+ /** The rendered markdown, only in the DOM while previewing. */
12
+ PREVIEW_SELECTOR: string;
13
+ /** The toolbar button that switches to preview. */
14
+ PREVIEW_BUTTON_TEST_SUBJ: string;
15
+ /** The toolbar button that switches back to editing. */
16
+ EDIT_BUTTON_TEST_SUBJ: string;
17
+ };
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ /**
9
+ * Stable selectors for
10
+ * {@link https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/|EuiMarkdownEditor}.
11
+ * `*_SELECTOR` values are CSS, `*_TEST_SUBJ` values are `data-test-subj` names EUI sets itself.
12
+ */
13
+ export const EuiMarkdownEditorSelectors = {
14
+ /** The wrapper carrying the consumer's `data-test-subj`. */
15
+ ROOT_SELECTOR: '.euiMarkdownEditor',
16
+ /** The `<textarea>` holding the markdown source. */
17
+ TEXT_AREA_SELECTOR: '.euiMarkdownEditorTextArea',
18
+ /** The rendered markdown, only in the DOM while previewing. */
19
+ PREVIEW_SELECTOR: '.euiMarkdownEditorPreview',
20
+ /** The toolbar button that switches to preview. */
21
+ PREVIEW_BUTTON_TEST_SUBJ: 'markdown_editor_edit_button',
22
+ /** The toolbar button that switches back to editing. */
23
+ EDIT_BUTTON_TEST_SUBJ: 'markdown_editor_preview_button',
24
+ };
25
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../../src/components/markdown_editor/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,4DAA4D;IAC5D,aAAa,EAAE,oBAAoB;IAEnC,oDAAoD;IACpD,kBAAkB,EAAE,4BAA4B;IAEhD,+DAA+D;IAC/D,gBAAgB,EAAE,2BAA2B;IAE7C,mDAAmD;IACnD,wBAAwB,EAAE,6BAA6B;IAEvD,wDAAwD;IACxD,qBAAqB,EAAE,gCAAgC;CACxD,CAAC"}
@@ -17,9 +17,11 @@ export { EuiContextMenuObject } from './playwright/components/context_menu/objec
17
17
  export { EuiModalObject } from './playwright/components/modal/object';
18
18
  export { EuiTableObject } from './playwright/components/table/object';
19
19
  export { EuiTabsObject } from './playwright/components/tabs/object';
20
+ export { EuiMarkdownEditorObject } from './playwright/components/markdown_editor/object';
20
21
  export { EuiPaginationObject } from './playwright/components/pagination/object';
21
22
  export { EuiBasicTableObject } from './playwright/components/basic_table/object';
22
23
  export { EuiCallOutObject } from './playwright/components/call_out/object';
24
+ export { EuiCardObject } from './playwright/components/card/object';
23
25
  export { EuiColorPickerObject } from './playwright/components/color_picker/object';
24
26
  export { EuiTreeViewObject } from './playwright/components/tree_view/object';
25
27
  export { EuiToolTipObject } from './playwright/components/tool_tip/object';
package/lib/esm/index.js CHANGED
@@ -24,9 +24,11 @@ export { EuiContextMenuObject } from './playwright/components/context_menu/objec
24
24
  export { EuiModalObject } from './playwright/components/modal/object';
25
25
  export { EuiTableObject } from './playwright/components/table/object';
26
26
  export { EuiTabsObject } from './playwright/components/tabs/object';
27
+ export { EuiMarkdownEditorObject } from './playwright/components/markdown_editor/object';
27
28
  export { EuiPaginationObject } from './playwright/components/pagination/object';
28
29
  export { EuiBasicTableObject } from './playwright/components/basic_table/object';
29
30
  export { EuiCallOutObject } from './playwright/components/call_out/object';
31
+ export { EuiCardObject } from './playwright/components/card/object';
30
32
  export { EuiColorPickerObject } from './playwright/components/color_picker/object';
31
33
  export { EuiTreeViewObject } from './playwright/components/tree_view/object';
32
34
  export { EuiToolTipObject } from './playwright/components/tool_tip/object';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Locator } from '@playwright/test';
2
+ import { BaseObject, type ObjectScope } from '../../base_object';
3
+ /**
4
+ * Playwright Component Object for {@link
5
+ * https://eui.elastic.co/docs/components/display/card/ EuiCard}.
6
+ *
7
+ * `testSubj` must be set on `EuiCard` itself, EUI spreads it onto the panel.
8
+ */
9
+ export declare class EuiCardObject extends BaseObject {
10
+ constructor(scope: ObjectScope, testSubj: string, componentSelector?: string);
11
+ /** The `selectable` toggle button, absent on plain cards. */
12
+ get selectButton(): Locator;
13
+ /** The title text. */
14
+ getTitle(): Promise<string>;
15
+ /** The description text, or `null` when the card has none. */
16
+ getDescription(): Promise<string | null>;
17
+ /** Click the card, which follows `href` or fires `onClick`. */
18
+ click(): Promise<void>;
19
+ /** Whether the `selectable` toggle is checked. */
20
+ isSelected(): Promise<boolean>;
21
+ /** Click the `selectable` toggle and wait for it to flip. */
22
+ toggleSelected(): Promise<void>;
23
+ }
@@ -0,0 +1,54 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ import { expect } from '@playwright/test';
9
+ import { BaseObject } from '../../base_object';
10
+ import { EuiCardSelectors } from '../../../components/card/selectors';
11
+ /**
12
+ * Playwright Component Object for {@link
13
+ * https://eui.elastic.co/docs/components/display/card/ EuiCard}.
14
+ *
15
+ * `testSubj` must be set on `EuiCard` itself, EUI spreads it onto the panel.
16
+ */
17
+ export class EuiCardObject extends BaseObject {
18
+ constructor(scope, testSubj, componentSelector = EuiCardSelectors.ROOT_SELECTOR) {
19
+ super(scope, testSubj, componentSelector);
20
+ }
21
+ /** The `selectable` toggle button, absent on plain cards. */
22
+ get selectButton() {
23
+ // A direct child, so switches in `children` or `footer` do not match.
24
+ return this.root.locator(`> ${EuiCardSelectors.SELECT_BUTTON_SELECTOR}`);
25
+ }
26
+ /** The title text. */
27
+ async getTitle() {
28
+ return (await this.root.locator(EuiCardSelectors.TITLE_SELECTOR).innerText()).trim();
29
+ }
30
+ /** The description text, or `null` when the card has none. */
31
+ async getDescription() {
32
+ await this.root.waitFor({ state: 'attached' });
33
+ const description = this.root.locator(EuiCardSelectors.DESCRIPTION_SELECTOR);
34
+ if ((await description.count()) === 0) {
35
+ return null;
36
+ }
37
+ return (await description.innerText()).trim();
38
+ }
39
+ /** Click the card, which follows `href` or fires `onClick`. */
40
+ async click() {
41
+ await this.root.click();
42
+ }
43
+ /** Whether the `selectable` toggle is checked. */
44
+ async isSelected() {
45
+ return (await this.selectButton.getAttribute('aria-checked')) === 'true';
46
+ }
47
+ /** Click the `selectable` toggle and wait for it to flip. */
48
+ async toggleSelected() {
49
+ const selected = await this.isSelected();
50
+ await this.selectButton.click();
51
+ await expect(this.selectButton).toHaveAttribute('aria-checked', String(!selected));
52
+ }
53
+ }
54
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../src/playwright/components/card/object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAgB,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YACE,KAAkB,EAClB,QAAgB,EAChB,iBAAiB,GAAG,gBAAgB,CAAC,aAAa;QAElD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,6DAA6D;IAC7D,IAAI,YAAY;QACd,sEAAsE;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,QAAQ;QACZ,OAAO,CACL,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CACrE,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CACnC,gBAAgB,CAAC,oBAAoB,CACtC,CAAC;QACF,IAAI,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,UAAU;QACd,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,KAAK,MAAM,CAAC;IAC3E,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe,CAC7C,cAAc,EACd,MAAM,CAAC,CAAC,QAAQ,CAAC,CAClB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import { type Locator } from '@playwright/test';
2
+ import { BaseObject, type ObjectScope } from '../../base_object';
3
+ /**
4
+ * Playwright Component Object for {@link
5
+ * https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/ EuiMarkdownEditor}.
6
+ *
7
+ * `testSubj` must be set on `EuiMarkdownEditor` itself, EUI spreads it onto
8
+ * the wrapper.
9
+ */
10
+ export declare class EuiMarkdownEditorObject extends BaseObject {
11
+ constructor(scope: ObjectScope, testSubj: string, componentSelector?: string);
12
+ /** The `<textarea>` holding the markdown source. */
13
+ get textArea(): Locator;
14
+ /** The rendered markdown, only in the DOM while previewing. */
15
+ get preview(): Locator;
16
+ /** Replace the markdown source. Switches back to editing first if needed. */
17
+ setValue(text: string): Promise<void>;
18
+ /** The current markdown source. */
19
+ getValue(): Promise<string>;
20
+ /** Whether the rendered preview is shown instead of the textarea. */
21
+ isPreviewing(): Promise<boolean>;
22
+ /** Switch between the textarea and the rendered preview. */
23
+ togglePreview(): Promise<void>;
24
+ }
@@ -0,0 +1,57 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ import { expect } from '@playwright/test';
9
+ import { BaseObject } from '../../base_object';
10
+ import { EuiMarkdownEditorSelectors } from '../../../components/markdown_editor/selectors';
11
+ /**
12
+ * Playwright Component Object for {@link
13
+ * https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/ EuiMarkdownEditor}.
14
+ *
15
+ * `testSubj` must be set on `EuiMarkdownEditor` itself, EUI spreads it onto
16
+ * the wrapper.
17
+ */
18
+ export class EuiMarkdownEditorObject extends BaseObject {
19
+ constructor(scope, testSubj, componentSelector = EuiMarkdownEditorSelectors.ROOT_SELECTOR) {
20
+ super(scope, testSubj, componentSelector);
21
+ }
22
+ /** The `<textarea>` holding the markdown source. */
23
+ get textArea() {
24
+ return this.root.locator(EuiMarkdownEditorSelectors.TEXT_AREA_SELECTOR);
25
+ }
26
+ /** The rendered markdown, only in the DOM while previewing. */
27
+ get preview() {
28
+ return this.root.locator(EuiMarkdownEditorSelectors.PREVIEW_SELECTOR);
29
+ }
30
+ /** Replace the markdown source. Switches back to editing first if needed. */
31
+ async setValue(text) {
32
+ if (await this.isPreviewing()) {
33
+ await this.togglePreview();
34
+ }
35
+ await this.textArea.fill(text);
36
+ await expect(this.textArea).toHaveValue(text);
37
+ }
38
+ /** The current markdown source. */
39
+ async getValue() {
40
+ return this.textArea.inputValue();
41
+ }
42
+ /** Whether the rendered preview is shown instead of the textarea. */
43
+ async isPreviewing() {
44
+ await this.root.waitFor({ state: 'attached' });
45
+ return (await this.preview.count()) > 0;
46
+ }
47
+ /** Switch between the textarea and the rendered preview. */
48
+ async togglePreview() {
49
+ const previewing = await this.isPreviewing();
50
+ const button = previewing
51
+ ? EuiMarkdownEditorSelectors.EDIT_BUTTON_TEST_SUBJ
52
+ : EuiMarkdownEditorSelectors.PREVIEW_BUTTON_TEST_SUBJ;
53
+ await this.root.getByTestId(button).click();
54
+ await expect(this.preview).toHaveCount(previewing ? 0 : 1);
55
+ }
56
+ }
57
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../src/playwright/components/markdown_editor/object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAgB,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IACrD,YACE,KAAkB,EAClB,QAAgB,EAChB,iBAAiB,GAAG,0BAA0B,CAAC,aAAa;QAE5D,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAED,+DAA+D;IAC/D,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IACxE,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,aAAa;QACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,0BAA0B,CAAC,qBAAqB;YAClD,CAAC,CAAC,0BAA0B,CAAC,wBAAwB,CAAC;QACxD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -23,6 +23,12 @@ export declare const selectors: {
23
23
  DISMISS_BUTTON_TEST_SUBJ: string;
24
24
  DISMISS_BUTTON_SELECTOR: string;
25
25
  };
26
+ readonly card: {
27
+ ROOT_SELECTOR: string;
28
+ TITLE_SELECTOR: string;
29
+ DESCRIPTION_SELECTOR: string;
30
+ SELECT_BUTTON_SELECTOR: string;
31
+ };
26
32
  readonly colorPicker: {
27
33
  ANCHOR_TEST_SUBJ: string;
28
34
  ANCHOR_SELECTOR: string;
@@ -79,6 +85,13 @@ export declare const selectors: {
79
85
  ROOT_SELECTOR: string;
80
86
  CLOSE_BUTTON_TEST_SUBJ: string;
81
87
  };
88
+ readonly markdownEditor: {
89
+ ROOT_SELECTOR: string;
90
+ TEXT_AREA_SELECTOR: string;
91
+ PREVIEW_SELECTOR: string;
92
+ PREVIEW_BUTTON_TEST_SUBJ: string;
93
+ EDIT_BUTTON_TEST_SUBJ: string;
94
+ };
82
95
  readonly modal: {
83
96
  ROOT_SELECTOR: string;
84
97
  CLOSE_BUTTON_SELECTOR: string;
@@ -8,6 +8,7 @@
8
8
  import { EuiAccordionSelectors } from './components/accordion/selectors';
9
9
  import { EuiBasicTableSelectors } from './components/basic_table/selectors';
10
10
  import { EuiCallOutSelectors } from './components/call_out/selectors';
11
+ import { EuiCardSelectors } from './components/card/selectors';
11
12
  import { EuiColorPickerSelectors } from './components/color_picker/selectors';
12
13
  import { EuiComboBoxSelectors } from './components/combo_box/selectors';
13
14
  import { EuiContextMenuSelectors } from './components/context_menu/selectors';
@@ -16,6 +17,7 @@ import { EuiDraggableSelectors } from './components/drag_and_drop/selectors';
16
17
  import { EuiFieldSearchSelectors } from './components/form/field_search/selectors';
17
18
  import { EuiFilterButtonSelectors } from './components/filter_button/selectors';
18
19
  import { EuiFlyoutSelectors } from './components/flyout/selectors';
20
+ import { EuiMarkdownEditorSelectors } from './components/markdown_editor/selectors';
19
21
  import { EuiModalSelectors } from './components/modal/selectors';
20
22
  import { EuiPaginationSelectors } from './components/pagination/selectors';
21
23
  import { EuiPopoverSelectors } from './components/popover/selectors';
@@ -39,6 +41,7 @@ export const selectors = {
39
41
  accordion: EuiAccordionSelectors,
40
42
  basicTable: EuiBasicTableSelectors,
41
43
  callOut: EuiCallOutSelectors,
44
+ card: EuiCardSelectors,
42
45
  colorPicker: EuiColorPickerSelectors,
43
46
  comboBox: EuiComboBoxSelectors,
44
47
  contextMenu: EuiContextMenuSelectors,
@@ -47,6 +50,7 @@ export const selectors = {
47
50
  fieldSearch: EuiFieldSearchSelectors,
48
51
  filterButton: EuiFilterButtonSelectors,
49
52
  flyout: EuiFlyoutSelectors,
53
+ markdownEditor: EuiMarkdownEditorSelectors,
50
54
  modal: EuiModalSelectors,
51
55
  pagination: EuiPaginationSelectors,
52
56
  popover: EuiPopoverSelectors,
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../src/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,qBAAqB;IAChC,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,WAAW,EAAE,uBAAuB;IACpC,QAAQ,EAAE,oBAAoB;IAC9B,WAAW,EAAE,uBAAuB;IACpC,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,qBAAqB;IAChC,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,wBAAwB;IACtC,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,qBAAqB;IAChC,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,gBAAgB;IACtB,eAAe,EAAE,2BAA2B;IAC5C,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EAAE,oBAAoB;CACtB,CAAC"}
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../src/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,qBAAqB;IAChC,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,uBAAuB;IACpC,QAAQ,EAAE,oBAAoB;IAC9B,WAAW,EAAE,uBAAuB;IACpC,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,qBAAqB;IAChC,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,wBAAwB;IACtC,MAAM,EAAE,kBAAkB;IAC1B,cAAc,EAAE,0BAA0B;IAC1C,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,qBAAqB;IAChC,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,gBAAgB;IACtB,eAAe,EAAE,2BAA2B;IAC5C,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EAAE,oBAAoB;CACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elastic/eui-test-helpers",
3
- "version": "2.2.0-snapshot.1794195065697",
3
+ "version": "2.3.0",
4
4
  "description": "A library of EUI test helpers for RTL, Cypress and Scout",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "repository": {
@@ -57,6 +57,5 @@
57
57
  "!**/*.spec.js.map",
58
58
  "README.md",
59
59
  "licenses"
60
- ],
61
- "stableVersion": "2.2.0"
60
+ ]
62
61
  }
@@ -0,0 +1,30 @@
1
+ # EuiCardObject
2
+
3
+ Playwright Component Object for [EuiCard](https://eui.elastic.co/docs/components/display/card/).
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ import { EuiCardObject } from '@elastic/eui-test-helpers';
9
+
10
+ const card = new EuiCardObject(page, 'myCard');
11
+ expect(await card.getTitle()).toBe('Logs');
12
+ await card.click();
13
+ ```
14
+
15
+ Set `data-test-subj` on `<EuiCard>`. EUI spreads it onto the panel, which the component-type guard verifies.
16
+
17
+ ## API
18
+
19
+ | Member | Description |
20
+ |---|---|
21
+ | `selectButton` | `Locator` for the `selectable` toggle button, absent on plain cards. |
22
+ | `getTitle()` | The title text. |
23
+ | `getDescription()` | The description text, or `null` when the card has none. |
24
+ | `click()` | Click the card, which follows `href` or fires `onClick`. |
25
+ | `isSelected()` | Whether the `selectable` toggle is checked. |
26
+ | `toggleSelected()` | Click the `selectable` toggle and wait for it to flip. |
27
+
28
+ ## Deliberately excluded
29
+
30
+ `children`, `footer`, `betaBadgeProps` and `icon`. They are consumer content, so assert on them through `locator`. `EuiCheckableCard` is a different component built on a radio or checkbox.
@@ -0,0 +1,30 @@
1
+ # EuiMarkdownEditorObject
2
+
3
+ Playwright Component Object for [EuiMarkdownEditor](https://eui.elastic.co/docs/components/editors-and-syntax/markdown-editor/).
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ import { EuiMarkdownEditorObject } from '@elastic/eui-test-helpers';
9
+
10
+ const editor = new EuiMarkdownEditorObject(page, 'myEditor');
11
+ await editor.setValue('# Hello');
12
+ expect(await editor.getValue()).toBe('# Hello');
13
+ ```
14
+
15
+ Set `data-test-subj` on `<EuiMarkdownEditor>`. EUI spreads it onto the wrapper, which the component-type guard verifies.
16
+
17
+ ## API
18
+
19
+ | Member | Description |
20
+ |---|---|
21
+ | `textArea` | `Locator` for the `<textarea>` holding the markdown source. |
22
+ | `preview` | `Locator` for the rendered markdown, only in the DOM while previewing. |
23
+ | `setValue(text)` | Replace the markdown source. Switches back to editing first if needed. |
24
+ | `getValue()` | The current markdown source. |
25
+ | `isPreviewing()` | Whether the rendered preview is shown instead of the textarea. |
26
+ | `togglePreview()` | Switch between the textarea and the rendered preview. |
27
+
28
+ ## Deliberately excluded
29
+
30
+ The formatting toolbar buttons and the drop zone. They are consumer facing (`toolbarProps`, `uiPlugins`, `dropHandlers`), so drive them with `locator` and the `euiMarkdownEditorToolbarButton*` test subjects EUI sets.