@blaze-cms/react-page-builder 0.146.0-node18-tooltips.11 → 0.146.0-node18-core-styles-tooltips.20
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.
- package/CHANGELOG.md +77 -10
- package/lib/components/Card/CardsRender.js +4 -5
- package/lib/components/Card/CardsRender.js.map +1 -1
- package/lib/components/Menu/Menu.js +4 -1
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/Menu/MenuContext.js +2 -1
- package/lib/components/Menu/MenuContext.js.map +1 -1
- package/lib/components/MenuItem/MenuItemRender.js +27 -12
- package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
- package/lib/components/MenuItem/helpers/has-active-child.js +19 -0
- package/lib/components/MenuItem/helpers/has-active-child.js.map +1 -0
- package/lib/components/MenuItem/helpers/index.js +14 -0
- package/lib/components/MenuItem/helpers/index.js.map +1 -1
- package/lib/components/MenuItem/helpers/isUrlPathMatch.js +18 -0
- package/lib/components/MenuItem/helpers/isUrlPathMatch.js.map +1 -0
- package/lib-es/components/Card/CardsRender.js +4 -5
- package/lib-es/components/Card/CardsRender.js.map +1 -1
- package/lib-es/components/Menu/Menu.js +4 -1
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/Menu/MenuContext.js +2 -1
- package/lib-es/components/Menu/MenuContext.js.map +1 -1
- package/lib-es/components/MenuItem/MenuItemRender.js +25 -11
- package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
- package/lib-es/components/MenuItem/helpers/has-active-child.js +5 -0
- package/lib-es/components/MenuItem/helpers/has-active-child.js.map +1 -0
- package/lib-es/components/MenuItem/helpers/index.js +3 -1
- package/lib-es/components/MenuItem/helpers/index.js.map +1 -1
- package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js +8 -0
- package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js.map +1 -0
- package/package.json +10 -10
- package/src/components/Card/CardsRender.js +11 -12
- package/src/components/Menu/Menu.js +3 -1
- package/src/components/Menu/MenuContext.js +1 -1
- package/src/components/MenuItem/MenuItemRender.js +40 -12
- package/src/components/MenuItem/helpers/has-active-child.js +10 -0
- package/src/components/MenuItem/helpers/index.js +3 -1
- package/src/components/MenuItem/helpers/isUrlPathMatch.js +10 -0
- package/tests/unit/src/components/MenuItem/MenuItem.test.js +5 -0
- package/tests/unit/src/components/MenuItem/MenuItemRender.test.js +11 -3
- package/tests/unit/src/components/MenuItem/helpers/constants.js +73 -0
- package/tests/unit/src/components/MenuItem/helpers/has-active-child.test.js +35 -0
- package/tests/unit/src/components/MenuItem/helpers/is-url-path-match.test.js +53 -0
- package/tests/unit/src/components/PlaceholderIcon/__snapshots__/index.test.js.snap +0 -82
- package/tests/unit/src/components/PlaceholderIcon/index.test.js +0 -20
|
@@ -1,17 +1,23 @@
|
|
|
1
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
1
2
|
import React, { useState, useContext, useEffect } from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { FaChevronDown, FaChevronUp } from 'react-icons/fa';
|
|
5
|
+
import classnames from 'classnames';
|
|
4
6
|
import { useRouter } from 'next/router';
|
|
5
7
|
import { useStringTemplate } from '@blaze-cms/utils-handlebars';
|
|
6
|
-
import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';
|
|
8
|
+
import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN, CLICK } from '../../constants';
|
|
7
9
|
import { hasChildren } from '../../helpers';
|
|
8
10
|
import BlazeLink from '../BlazeLink';
|
|
9
11
|
import MenuContext from '../Menu/MenuContext';
|
|
10
|
-
import { injectHelperIntoTemplate } from './helpers';
|
|
12
|
+
import { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild } from './helpers';
|
|
11
13
|
|
|
12
14
|
const MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {
|
|
13
|
-
const
|
|
14
|
-
const { showMobileMenu } = useContext(MenuContext);
|
|
15
|
+
const router = useRouter();
|
|
16
|
+
const { showMobileMenu, openActiveSubmenus } = useContext(MenuContext);
|
|
17
|
+
|
|
18
|
+
const isHoverEvent = eventType === HOVER;
|
|
19
|
+
const isClickEvent = eventType === CLICK;
|
|
20
|
+
|
|
15
21
|
const {
|
|
16
22
|
loading: loadingText,
|
|
17
23
|
data: [textToUse]
|
|
@@ -21,14 +27,24 @@ const MenuItemRender = ({ children, eventType, text, modifier, url, parent }) =>
|
|
|
21
27
|
data: [urlToUse]
|
|
22
28
|
} = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);
|
|
23
29
|
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
30
|
+
const isActive = router ? isUrlPathMatch(router.asPath, urlToUse) : false;
|
|
31
|
+
const isActiveParent = router ? hasActiveChild(router.asPath, children) : false;
|
|
32
|
+
const shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;
|
|
27
33
|
const hasValidChildren = hasChildren(children);
|
|
28
34
|
|
|
35
|
+
const [displayChildren, setDisplayChildren] = useState(shouldPreOpen);
|
|
36
|
+
|
|
29
37
|
useEffect(() => {
|
|
30
|
-
if (!showMobileMenu) setDisplayChildren(false);
|
|
31
|
-
}, [
|
|
38
|
+
if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);
|
|
39
|
+
}, [
|
|
40
|
+
children,
|
|
41
|
+
isClickEvent,
|
|
42
|
+
loadingUrl,
|
|
43
|
+
openActiveSubmenus,
|
|
44
|
+
router,
|
|
45
|
+
shouldPreOpen,
|
|
46
|
+
showMobileMenu
|
|
47
|
+
]);
|
|
32
48
|
|
|
33
49
|
useEffect(() => {
|
|
34
50
|
if (isHoverEvent) {
|
|
@@ -38,6 +54,8 @@ const MenuItemRender = ({ children, eventType, text, modifier, url, parent }) =>
|
|
|
38
54
|
|
|
39
55
|
if (loadingUrl || loadingText) return '';
|
|
40
56
|
|
|
57
|
+
const childrenDisplayClass = displayChildren ? '' : HIDDEN;
|
|
58
|
+
|
|
41
59
|
const handleItemEvent = ({ type }) => {
|
|
42
60
|
if (isHoverEvent) {
|
|
43
61
|
if (type === MOUSE_ENTER) {
|
|
@@ -55,15 +73,25 @@ const MenuItemRender = ({ children, eventType, text, modifier, url, parent }) =>
|
|
|
55
73
|
}
|
|
56
74
|
};
|
|
57
75
|
|
|
76
|
+
const menuItemLinkClassname = classnames('menu--item--link', {
|
|
77
|
+
'menu--item--link--active': isActive,
|
|
78
|
+
'menu--item--link--active-parent': isActiveParent
|
|
79
|
+
});
|
|
80
|
+
|
|
58
81
|
return (
|
|
59
82
|
<li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>
|
|
60
83
|
<div
|
|
61
|
-
className=
|
|
84
|
+
className={menuItemLinkClassname}
|
|
62
85
|
onClick={handleMobileClick}
|
|
63
86
|
role={!urlToUse && hasValidChildren ? 'button' : undefined}
|
|
64
87
|
tabIndex={!urlToUse && hasValidChildren ? 0 : undefined}>
|
|
65
|
-
{urlToUse ?
|
|
66
|
-
|
|
88
|
+
{urlToUse ? (
|
|
89
|
+
<BlazeLink href={urlToUse}>{textToUse}</BlazeLink>
|
|
90
|
+
) : (
|
|
91
|
+
<span role="button" onClick={handleItemEvent}>
|
|
92
|
+
{textToUse}
|
|
93
|
+
</span>
|
|
94
|
+
)}
|
|
67
95
|
{hasValidChildren && (
|
|
68
96
|
<i
|
|
69
97
|
role="button"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import isUrlPathMatch from './isUrlPathMatch';
|
|
2
|
+
import { hasChildren } from '../../../helpers';
|
|
3
|
+
|
|
4
|
+
const hasActiveChild = (path, children) =>
|
|
5
|
+
hasChildren(children) &&
|
|
6
|
+
children.props.children[1][0].props.component.items.find(menuItem =>
|
|
7
|
+
isUrlPathMatch(path, menuItem.settings.url)
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
export default hasActiveChild;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import injectHelperIntoTemplate from './inject-helper-into-template';
|
|
2
|
+
import isUrlPathMatch from './isUrlPathMatch';
|
|
3
|
+
import hasActiveChild from './has-active-child';
|
|
2
4
|
|
|
3
|
-
export { injectHelperIntoTemplate };
|
|
5
|
+
export { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild };
|
|
@@ -19,6 +19,11 @@ jest.mock('next/router', () => ({
|
|
|
19
19
|
useRouter: () => ({ asPath: '/' })
|
|
20
20
|
}));
|
|
21
21
|
|
|
22
|
+
// todo: add extra tests to support this util
|
|
23
|
+
jest.mock('../../../../../src/components/MenuItem/helpers/has-active-child', () =>
|
|
24
|
+
jest.fn(() => false)
|
|
25
|
+
);
|
|
26
|
+
|
|
22
27
|
const componentProps = {
|
|
23
28
|
id: 'id',
|
|
24
29
|
name: 'mock name',
|
|
@@ -11,14 +11,22 @@ const MENU_ITEM_CHILDREN_CLASS = 'menu--item-children';
|
|
|
11
11
|
|
|
12
12
|
let mockAsPathValue = '/';
|
|
13
13
|
|
|
14
|
-
jest.mock('next/router', () =>
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
jest.mock('next/router', () => {
|
|
15
|
+
const router = { asPath: mockAsPathValue };
|
|
16
|
+
return {
|
|
17
|
+
useRouter: () => router
|
|
18
|
+
};
|
|
19
|
+
});
|
|
17
20
|
|
|
18
21
|
jest.mock('@blaze-cms/utils-handlebars', () => ({
|
|
19
22
|
useStringTemplate: jest.fn((parent, [title]) => ({ loading: false, data: [title] }))
|
|
20
23
|
}));
|
|
21
24
|
|
|
25
|
+
// todo: add extra tests to support this util
|
|
26
|
+
jest.mock('../../../../../src/components/MenuItem/helpers/has-active-child', () =>
|
|
27
|
+
jest.fn(() => false)
|
|
28
|
+
);
|
|
29
|
+
|
|
22
30
|
describe('MenuRender component', () => {
|
|
23
31
|
it('renders menu item with link when URL is provided', () => {
|
|
24
32
|
const { getByText } = render(<MenuRender eventType="click" text="Home" url="/home" />);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export const mockMenuProps = {
|
|
2
|
+
props: {
|
|
3
|
+
children: [
|
|
4
|
+
false,
|
|
5
|
+
[
|
|
6
|
+
{
|
|
7
|
+
props: {
|
|
8
|
+
component: {
|
|
9
|
+
items: [
|
|
10
|
+
{
|
|
11
|
+
type: 'menuitem',
|
|
12
|
+
settings: {
|
|
13
|
+
name: 'menuitem-card',
|
|
14
|
+
url: 'card',
|
|
15
|
+
text: 'Card'
|
|
16
|
+
},
|
|
17
|
+
id: 'menuitem-card-1',
|
|
18
|
+
items: [],
|
|
19
|
+
name: 'menuitem-card-1'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
type: 'menuitem',
|
|
23
|
+
settings: {
|
|
24
|
+
name: 'menuitem-Card',
|
|
25
|
+
|
|
26
|
+
url: 'card',
|
|
27
|
+
text: 'Card'
|
|
28
|
+
},
|
|
29
|
+
id: 'menuitem-Card-1',
|
|
30
|
+
items: [],
|
|
31
|
+
name: 'menuitem-Card-1'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
type: 'menuitem',
|
|
35
|
+
settings: {
|
|
36
|
+
name: 'menuitem-card-Carousel',
|
|
37
|
+
url: 'card-carousel',
|
|
38
|
+
text: 'Card Carousel'
|
|
39
|
+
},
|
|
40
|
+
id: 'menuitem-card-carousel-1',
|
|
41
|
+
items: [],
|
|
42
|
+
name: 'menuitem-card-carousel-1'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'menuitem',
|
|
46
|
+
settings: {
|
|
47
|
+
eventType: 'hover',
|
|
48
|
+
name: 'menuitem-Content-Group',
|
|
49
|
+
modifier: null,
|
|
50
|
+
url: 'content-group',
|
|
51
|
+
text: 'Content Group',
|
|
52
|
+
variant: null,
|
|
53
|
+
gtmClassName: null,
|
|
54
|
+
entities: [],
|
|
55
|
+
filterByProperty: [],
|
|
56
|
+
filterByFeatured: 'off',
|
|
57
|
+
filterBySponsored: 'off',
|
|
58
|
+
operator: 'AND',
|
|
59
|
+
filterBy: [],
|
|
60
|
+
sortProperties: []
|
|
61
|
+
},
|
|
62
|
+
id: 'menuitem-Content-Group-1',
|
|
63
|
+
items: [],
|
|
64
|
+
name: 'menuitem-Content-Group-1'
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
3
|
+
import { hasActiveChild } from '../../../../../../src/components/MenuItem/helpers';
|
|
4
|
+
import { mockMenuProps } from './constants';
|
|
5
|
+
|
|
6
|
+
describe('hasActiveChild', () => {
|
|
7
|
+
const structuredClone = val => JSON.parse(JSON.stringify(val));
|
|
8
|
+
|
|
9
|
+
it('should return true for finding active menu-item child', () => {
|
|
10
|
+
const activePath = '/card';
|
|
11
|
+
const menuProps = mockMenuProps;
|
|
12
|
+
const result = !!hasActiveChild(activePath, menuProps);
|
|
13
|
+
expect(result).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('shoul return false for findng no exact match', () => {
|
|
17
|
+
const activePath = '/carousel';
|
|
18
|
+
const menuProps = mockMenuProps;
|
|
19
|
+
|
|
20
|
+
const result = !!hasActiveChild(activePath, menuProps);
|
|
21
|
+
expect(result).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('should return false for empty children-items', () => {
|
|
25
|
+
const activePath = '/carousel';
|
|
26
|
+
const menuWithNoChildrenProps = (() => {
|
|
27
|
+
const obj = structuredClone(mockMenuProps);
|
|
28
|
+
obj.props.children[1][0].props.component.items = [];
|
|
29
|
+
return obj;
|
|
30
|
+
}).call();
|
|
31
|
+
|
|
32
|
+
const result = !!hasActiveChild(activePath, menuWithNoChildrenProps);
|
|
33
|
+
expect(result).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
2
|
+
import { isUrlPathMatch } from '../../../../../../src/components/MenuItem/helpers';
|
|
3
|
+
|
|
4
|
+
describe('isUrlPathMatch', () => {
|
|
5
|
+
it('should return true since path and itemUrl match', () => {
|
|
6
|
+
const path = '/button';
|
|
7
|
+
const itemUrl = 'button';
|
|
8
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
9
|
+
expect(result).toBeTruthy();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('should match since path and itemUrl do not match', () => {
|
|
13
|
+
const path = '/card';
|
|
14
|
+
const itemUrl = 'button';
|
|
15
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
16
|
+
expect(result).toBeFalsy();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('should not match since path and itemUrl is a partial match', () => {
|
|
20
|
+
const path = '/button-card';
|
|
21
|
+
const itemUrl = 'button';
|
|
22
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
23
|
+
expect(result).toBeFalsy();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('should not match since nested path and itemUrl is a partial match', () => {
|
|
27
|
+
const path = '/button/child';
|
|
28
|
+
const itemUrl = 'button';
|
|
29
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
30
|
+
expect(result).toBeFalsy();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('should match with uri-with-fragment', () => {
|
|
34
|
+
const path = '/button#dark';
|
|
35
|
+
const itemUrl = 'button';
|
|
36
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
37
|
+
expect(result).toBeTruthy();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('should match with uri-with-parameters', () => {
|
|
41
|
+
const path = '/button?paramater=value';
|
|
42
|
+
const itemUrl = 'button';
|
|
43
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
44
|
+
expect(result).toBeTruthy();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('should not match with empty itemUrl', () => {
|
|
48
|
+
const path = '/';
|
|
49
|
+
const itemUrl = null;
|
|
50
|
+
const result = isUrlPathMatch(path, itemUrl);
|
|
51
|
+
expect(result).toBeFalsy();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`Placeholder component should render PlaceholderIcon 1`] = `
|
|
4
|
-
<DocumentFragment>
|
|
5
|
-
<div
|
|
6
|
-
class="editor-view__placeholder"
|
|
7
|
-
data-testid="placeholder-icon"
|
|
8
|
-
>
|
|
9
|
-
<svg
|
|
10
|
-
height="25px"
|
|
11
|
-
version="1.1"
|
|
12
|
-
viewBox="0 0 20 20"
|
|
13
|
-
width="25px"
|
|
14
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
16
|
-
>
|
|
17
|
-
<title>
|
|
18
|
-
card
|
|
19
|
-
</title>
|
|
20
|
-
<g
|
|
21
|
-
fill="none"
|
|
22
|
-
fill-rule="evenodd"
|
|
23
|
-
id="Icons"
|
|
24
|
-
stroke="none"
|
|
25
|
-
stroke-width="1"
|
|
26
|
-
>
|
|
27
|
-
<g
|
|
28
|
-
id="card"
|
|
29
|
-
transform="translate(-259, -214)"
|
|
30
|
-
>
|
|
31
|
-
<g
|
|
32
|
-
transform="translate(259, 214)"
|
|
33
|
-
>
|
|
34
|
-
<g
|
|
35
|
-
id="Group-7"
|
|
36
|
-
transform="translate(1, 1)"
|
|
37
|
-
>
|
|
38
|
-
<path
|
|
39
|
-
d="M1.07,10 C3.04212623,8.18723771 4.14171262,7.28085657 4.36875916,7.28085657 C4.79707626,7.28085657 7,9 7.5,9 C8.40867615,9 12.0764465,4.56171314 12.9,4.56171314 C13.4490356,4.56171314 14.8390356,5.81447543 17.07,8.32"
|
|
40
|
-
fill-rule="nonzero"
|
|
41
|
-
id="Path-3"
|
|
42
|
-
stroke-width="1.3"
|
|
43
|
-
/>
|
|
44
|
-
<path
|
|
45
|
-
d="M5.00003877,4.07973585 C5.00003879,3.4834142 5.50109477,3 6.11917864,3 C6.73726251,3 7.2383185,3.4834142 7.2383185,4.07973585 C7.2383185,4.6760575 6.73726252,5.15947172 6.11917864,5.15947172 C5.82268209,5.15728623 5.53857972,5.04442179 5.32645457,4.84454876 C5.11586241,4.64208328 4.99827309,4.36656405 5.00003877,4.07973585 Z"
|
|
46
|
-
fill-rule="nonzero"
|
|
47
|
-
id="Path"
|
|
48
|
-
/>
|
|
49
|
-
<path
|
|
50
|
-
d="M3.375,14.625 C3.375,14.3143398 3.62683983,14.0625 3.9375,14.0625 L14.0625,14.0625 C14.3731602,14.0625 14.625,14.3143398 14.625,14.625 C14.625,14.9356602 14.3731602,15.1875 14.0625,15.1875 L3.9375,15.1875 C3.62683983,15.1875 3.375,14.9356602 3.375,14.625 Z"
|
|
51
|
-
fill-rule="nonzero"
|
|
52
|
-
id="Shape"
|
|
53
|
-
/>
|
|
54
|
-
<rect
|
|
55
|
-
height="16.7"
|
|
56
|
-
id="Rectangle"
|
|
57
|
-
rx="2"
|
|
58
|
-
stroke-width="1.3"
|
|
59
|
-
width="16.7"
|
|
60
|
-
x="0.65"
|
|
61
|
-
y="0.65"
|
|
62
|
-
/>
|
|
63
|
-
<line
|
|
64
|
-
id="Line-2"
|
|
65
|
-
stroke-linecap="square"
|
|
66
|
-
stroke-width="1.3"
|
|
67
|
-
x1="1"
|
|
68
|
-
x2="16.5625"
|
|
69
|
-
y1="11.8125"
|
|
70
|
-
y2="11.8125"
|
|
71
|
-
/>
|
|
72
|
-
</g>
|
|
73
|
-
</g>
|
|
74
|
-
</g>
|
|
75
|
-
</g>
|
|
76
|
-
</svg>
|
|
77
|
-
<span>
|
|
78
|
-
card
|
|
79
|
-
</span>
|
|
80
|
-
</div>
|
|
81
|
-
</DocumentFragment>
|
|
82
|
-
`;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @jest-environment jsdom
|
|
3
|
-
*/
|
|
4
|
-
import { render } from '@blaze-cms/tools/test-helpers/test-functions';
|
|
5
|
-
|
|
6
|
-
import { CardIcon } from '@blaze-cms/plugin-page-builder-ui/src/Icons';
|
|
7
|
-
import PlaceholderIcon from '@blaze-cms/plugin-page-builder-ui/src/components/EditorView/Placeholders';
|
|
8
|
-
|
|
9
|
-
const mockedProps = {
|
|
10
|
-
type: 'card',
|
|
11
|
-
icon: CardIcon
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
describe('Placeholder component', () => {
|
|
15
|
-
it('should render PlaceholderIcon', () => {
|
|
16
|
-
const { asFragment, getByTestId } = render(PlaceholderIcon, mockedProps);
|
|
17
|
-
expect(getByTestId('placeholder-icon')).toBeDefined();
|
|
18
|
-
expect(asFragment()).toMatchSnapshot();
|
|
19
|
-
});
|
|
20
|
-
});
|