@gravity-ui/page-constructor 2.22.0-alpha → 2.22.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.
- package/CHANGELOG.md +60 -0
- package/build/cjs/components/Anchor/Anchor.d.ts +2 -2
- package/build/cjs/components/Anchor/Anchor.js +1 -1
- package/build/cjs/components/BackgroundImage/BackgroundImage.js +2 -2
- package/build/cjs/components/BlockBase/BlockBase.d.ts +3 -2
- package/build/cjs/components/BlockBase/BlockBase.js +4 -2
- package/build/cjs/components/Button/Button.css +3 -0
- package/build/cjs/components/Button/Button.js +5 -4
- package/build/cjs/components/FullscreenMedia/FullscreenMedia.js +3 -1
- package/build/cjs/components/Image/Image.d.ts +1 -0
- package/build/cjs/components/Image/Image.js +2 -2
- package/build/cjs/components/Media/Image/Image.js +3 -3
- package/build/cjs/components/Media/Media.js +5 -3
- package/build/cjs/containers/Loadable/Loadable.d.ts +2 -2
- package/build/cjs/containers/PageConstructor/PageConstructor.js +5 -3
- package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +3 -2
- package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
- package/build/cjs/context/innerContext/InnerContext.d.ts +2 -1
- package/build/cjs/customization/BlockDecoration.d.ts +3 -0
- package/build/cjs/customization/BlockDecoration.js +22 -0
- package/build/cjs/editor/Components/AddBlock/AddBlock.css +82 -0
- package/build/cjs/editor/Components/AddBlock/AddBlock.d.ts +7 -0
- package/build/cjs/editor/Components/AddBlock/AddBlock.js +43 -0
- package/build/cjs/editor/Components/EditBlock/EditBlock.css +47 -0
- package/build/cjs/editor/Components/EditBlock/EditBlock.d.ts +4 -0
- package/build/cjs/editor/Components/EditBlock/EditBlock.js +32 -0
- package/build/cjs/editor/Containers/Editor.d.ts +2 -0
- package/build/cjs/editor/Containers/Editor.js +24 -0
- package/build/cjs/editor/data/index.d.ts +13 -0
- package/build/cjs/editor/data/index.js +27 -0
- package/build/cjs/editor/data/previews/default-preview.d.ts +3 -0
- package/build/cjs/editor/data/previews/default-preview.js +18 -0
- package/build/cjs/editor/data/previews/header-block.d.ts +3 -0
- package/build/cjs/editor/data/previews/header-block.js +19 -0
- package/build/cjs/editor/index.d.ts +2 -0
- package/build/cjs/editor/index.js +7 -0
- package/build/cjs/editor/store/index.d.ts +15 -0
- package/build/cjs/editor/store/index.js +32 -0
- package/build/cjs/editor/store/reducer.d.ts +41 -0
- package/build/cjs/editor/store/reducer.js +59 -0
- package/build/cjs/editor/store/utils.d.ts +13 -0
- package/build/cjs/editor/store/utils.js +34 -0
- package/build/cjs/editor/styles/mixins.css +0 -0
- package/build/cjs/editor/styles/variables.css +0 -0
- package/build/cjs/editor/types/index.d.ts +17 -0
- package/build/cjs/editor/types/index.js +2 -0
- package/build/cjs/editor/utils/index.d.ts +11 -0
- package/build/cjs/editor/utils/index.js +12 -0
- package/build/cjs/grid/Col/Col.d.ts +1 -1
- package/build/cjs/hooks/useMetrika.js +0 -7
- package/build/cjs/internal-typings/global.d.ts +18 -16
- package/build/cjs/models/constructor-items/blocks.d.ts +1 -11
- package/build/cjs/models/constructor-items/blocks.js +0 -2
- package/build/cjs/models/constructor-items/common.d.ts +3 -3
- package/build/cjs/models/constructor.d.ts +4 -1
- package/build/cjs/models/customization.d.ts +9 -0
- package/build/cjs/models/customization.js +2 -0
- package/build/cjs/models/index.d.ts +1 -0
- package/build/cjs/models/index.js +1 -0
- package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +2 -1
- package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.js +5 -2
- package/build/cjs/sub-blocks/HubspotForm/index.d.ts +1 -1
- package/build/cjs/sub-blocks/HubspotForm/index.js +6 -5
- package/build/cjs/utils/blocks.d.ts +4 -1
- package/build/cjs/utils/blocks.js +11 -1
- package/build/esm/components/Anchor/Anchor.d.ts +2 -2
- package/build/esm/components/Anchor/Anchor.js +1 -1
- package/build/esm/components/BackgroundImage/BackgroundImage.js +2 -2
- package/build/esm/components/BlockBase/BlockBase.d.ts +3 -2
- package/build/esm/components/BlockBase/BlockBase.js +4 -2
- package/build/esm/components/Button/Button.css +3 -0
- package/build/esm/components/Button/Button.js +5 -4
- package/build/esm/components/FullscreenMedia/FullscreenMedia.js +3 -1
- package/build/esm/components/Image/Image.d.ts +1 -0
- package/build/esm/components/Image/Image.js +2 -2
- package/build/esm/components/Media/Image/Image.js +3 -3
- package/build/esm/components/Media/Media.js +5 -3
- package/build/esm/containers/Loadable/Loadable.d.ts +2 -2
- package/build/esm/containers/PageConstructor/PageConstructor.js +6 -4
- package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +3 -2
- package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
- package/build/esm/context/innerContext/InnerContext.d.ts +2 -1
- package/build/esm/customization/BlockDecoration.d.ts +3 -0
- package/build/esm/customization/BlockDecoration.js +17 -0
- package/build/esm/editor/Components/AddBlock/AddBlock.css +82 -0
- package/build/esm/editor/Components/AddBlock/AddBlock.d.ts +8 -0
- package/build/esm/editor/Components/AddBlock/AddBlock.js +41 -0
- package/build/esm/editor/Components/EditBlock/EditBlock.css +47 -0
- package/build/esm/editor/Components/EditBlock/EditBlock.d.ts +5 -0
- package/build/esm/editor/Components/EditBlock/EditBlock.js +30 -0
- package/build/esm/editor/Containers/Editor.d.ts +2 -0
- package/build/esm/editor/Containers/Editor.js +20 -0
- package/build/esm/editor/data/index.d.ts +13 -0
- package/build/esm/editor/data/index.js +24 -0
- package/build/esm/editor/data/previews/default-preview.d.ts +3 -0
- package/build/esm/editor/data/previews/default-preview.js +15 -0
- package/build/esm/editor/data/previews/header-block.d.ts +3 -0
- package/build/esm/editor/data/previews/header-block.js +16 -0
- package/build/esm/editor/index.d.ts +2 -0
- package/build/esm/editor/index.js +2 -0
- package/build/esm/editor/store/index.d.ts +15 -0
- package/build/esm/editor/store/index.js +28 -0
- package/build/esm/editor/store/reducer.d.ts +41 -0
- package/build/esm/editor/store/reducer.js +55 -0
- package/build/esm/editor/store/utils.d.ts +13 -0
- package/build/esm/editor/store/utils.js +26 -0
- package/build/esm/editor/styles/mixins.css +0 -0
- package/build/esm/editor/styles/variables.css +0 -0
- package/build/esm/editor/types/index.d.ts +17 -0
- package/build/esm/editor/utils/index.d.ts +11 -0
- package/build/esm/editor/utils/index.js +6 -0
- package/build/esm/grid/Col/Col.d.ts +1 -1
- package/build/esm/hooks/useMetrika.js +0 -7
- package/build/esm/internal-typings/global.d.ts +18 -16
- package/build/esm/models/constructor-items/blocks.d.ts +1 -11
- package/build/esm/models/constructor-items/blocks.js +0 -2
- package/build/esm/models/constructor-items/common.d.ts +3 -3
- package/build/esm/models/constructor.d.ts +4 -1
- package/build/esm/models/customization.d.ts +9 -0
- package/build/esm/models/index.d.ts +1 -0
- package/build/esm/models/index.js +1 -0
- package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +2 -1
- package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.js +6 -3
- package/build/esm/sub-blocks/HubspotForm/index.d.ts +1 -1
- package/build/esm/sub-blocks/HubspotForm/index.js +7 -6
- package/build/esm/utils/blocks.d.ts +4 -1
- package/build/esm/utils/blocks.js +7 -0
- package/package.json +4 -6
- package/server/models/constructor-items/blocks.d.ts +1 -11
- package/server/models/constructor-items/blocks.js +0 -2
- package/server/models/constructor-items/common.d.ts +3 -3
- package/server/models/constructor.d.ts +4 -1
- package/server/models/customization.d.ts +9 -0
- package/server/models/customization.js +2 -0
- package/server/models/index.d.ts +1 -0
- package/server/models/index.js +1 -0
- package/server/utils/blocks.d.ts +4 -1
- package/server/utils/blocks.js +11 -1
- package/build/cjs/components/Anchor/__tests__/Anchor.test.js +0 -21
- package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.js +0 -36
- package/build/cjs/components/Author/__tests__/Author.test.d.ts +0 -1
- package/build/cjs/components/Author/__tests__/Author.test.js +0 -49
- package/build/cjs/components/BackLink/__tests__/BackLink.test.d.ts +0 -1
- package/build/cjs/components/BackLink/__tests__/BackLink.test.js +0 -63
- package/build/cjs/components/BlockBase/__tests__/BlockBase.test.d.ts +0 -1
- package/build/cjs/components/BlockBase/__tests__/BlockBase.test.js +0 -44
- package/build/cjs/components/Button/__tests__/Button.test.d.ts +0 -1
- package/build/cjs/components/Button/__tests__/Button.test.js +0 -91
- package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +0 -1
- package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.js +0 -58
- package/build/esm/components/Anchor/__tests__/Anchor.test.d.ts +0 -1
- package/build/esm/components/Anchor/__tests__/Anchor.test.js +0 -18
- package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +0 -1
- package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.js +0 -33
- package/build/esm/components/Author/__tests__/Author.test.d.ts +0 -1
- package/build/esm/components/Author/__tests__/Author.test.js +0 -46
- package/build/esm/components/BackLink/__tests__/BackLink.test.d.ts +0 -1
- package/build/esm/components/BackLink/__tests__/BackLink.test.js +0 -60
- package/build/esm/components/BlockBase/__tests__/BlockBase.test.d.ts +0 -1
- package/build/esm/components/BlockBase/__tests__/BlockBase.test.js +0 -41
- package/build/esm/components/Button/__tests__/Button.test.d.ts +0 -1
- package/build/esm/components/Button/__tests__/Button.test.js +0 -88
- package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +0 -1
- package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.js +0 -55
- /package/build/{cjs/components/Anchor/__tests__/Anchor.test.d.ts → esm/editor/types/index.js} +0 -0
- /package/build/{cjs/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts → esm/models/customization.js} +0 -0
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
-
const react_2 = require("@testing-library/react");
|
|
6
|
-
const user_event_1 = tslib_1.__importDefault(require("@testing-library/user-event"));
|
|
7
|
-
const ButtonTabs_1 = tslib_1.__importDefault(require("../ButtonTabs"));
|
|
8
|
-
const qaId = 'button-tabs-component';
|
|
9
|
-
const items = [
|
|
10
|
-
{
|
|
11
|
-
id: '0',
|
|
12
|
-
title: 'tab-1',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
id: '1',
|
|
16
|
-
title: 'tab-2',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: '2',
|
|
20
|
-
title: 'tab-3',
|
|
21
|
-
},
|
|
22
|
-
];
|
|
23
|
-
describe('ButtonTabs', () => {
|
|
24
|
-
test('render ButtonTabs by default', async () => {
|
|
25
|
-
(0, react_2.render)(react_1.default.createElement(ButtonTabs_1.default, { items: items, qa: qaId }));
|
|
26
|
-
const buttonTabs = react_2.screen.getByTestId(qaId);
|
|
27
|
-
expect(buttonTabs).toBeInTheDocument();
|
|
28
|
-
expect(buttonTabs).toBeVisible();
|
|
29
|
-
expect(buttonTabs).not.toBeDisabled();
|
|
30
|
-
});
|
|
31
|
-
test('has active tab', async () => {
|
|
32
|
-
const activeTabId = 1;
|
|
33
|
-
(0, react_2.render)(react_1.default.createElement(ButtonTabs_1.default, { items: items, qa: qaId, activeTab: String(activeTabId) }));
|
|
34
|
-
const buttons = react_2.screen.getAllByRole('button');
|
|
35
|
-
buttons.forEach((button, index) => {
|
|
36
|
-
if (index === activeTabId) {
|
|
37
|
-
expect(button).toHaveClass('pc-button-tabs__item_active');
|
|
38
|
-
}
|
|
39
|
-
expect(button).toHaveClass('pc-button-block_theme_normal');
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
test('add className', () => {
|
|
43
|
-
const className = 'my-class';
|
|
44
|
-
(0, react_2.render)(react_1.default.createElement(ButtonTabs_1.default, { items: items, qa: qaId, className: className }));
|
|
45
|
-
const buttonTabs = react_2.screen.getByTestId(qaId);
|
|
46
|
-
expect(buttonTabs).toHaveClass(className);
|
|
47
|
-
});
|
|
48
|
-
test('call onSelectTab', async () => {
|
|
49
|
-
const user = user_event_1.default.setup();
|
|
50
|
-
const handleOnClick = jest.fn();
|
|
51
|
-
(0, react_2.render)(react_1.default.createElement(ButtonTabs_1.default, { items: items, qa: qaId, onSelectTab: handleOnClick }));
|
|
52
|
-
const buttons = react_2.screen.getAllByRole('button');
|
|
53
|
-
buttons.forEach(async (button, i) => {
|
|
54
|
-
await user.click(button);
|
|
55
|
-
expect(handleOnClick).toHaveBeenCalledTimes(i + 1);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import Anchor from '../Anchor';
|
|
4
|
-
const testId = 'anchor';
|
|
5
|
-
const anchorId = 'anchorId';
|
|
6
|
-
describe('Anchor', () => {
|
|
7
|
-
test('Has id', async () => {
|
|
8
|
-
render(React.createElement(Anchor, { id: anchorId, dataQa: testId }));
|
|
9
|
-
const anchor = screen.getByTestId(testId);
|
|
10
|
-
expect(anchor).toHaveAttribute('id', anchorId);
|
|
11
|
-
});
|
|
12
|
-
test('Has custom class', async () => {
|
|
13
|
-
const className = 'custom-anchor-class';
|
|
14
|
-
render(React.createElement(Anchor, { id: anchorId, className: className, dataQa: testId }));
|
|
15
|
-
const anchor = screen.getByTestId(testId);
|
|
16
|
-
expect(anchor).toHaveClass(className);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import userEvent from '@testing-library/user-event';
|
|
4
|
-
import AnimateBlock from '../AnimateBlock';
|
|
5
|
-
const qaId = 'animate-block';
|
|
6
|
-
describe('AnimateBlock', () => {
|
|
7
|
-
test('render AnimateBlock by default', async () => {
|
|
8
|
-
render(React.createElement(AnimateBlock, { qa: qaId }));
|
|
9
|
-
const component = screen.getByTestId(qaId);
|
|
10
|
-
expect(component).toBeInTheDocument();
|
|
11
|
-
});
|
|
12
|
-
test('add className', () => {
|
|
13
|
-
const className = 'my-class';
|
|
14
|
-
render(React.createElement(AnimateBlock, { qa: qaId, className: className }));
|
|
15
|
-
const component = screen.getByTestId(qaId);
|
|
16
|
-
expect(component).toHaveClass(className);
|
|
17
|
-
});
|
|
18
|
-
test('use passed style', () => {
|
|
19
|
-
const style = { color: 'red' };
|
|
20
|
-
render(React.createElement(AnimateBlock, { style: style, qa: qaId }));
|
|
21
|
-
const component = screen.getByTestId(qaId);
|
|
22
|
-
expect(component).toHaveStyle(style);
|
|
23
|
-
});
|
|
24
|
-
test('call onScroll', async () => {
|
|
25
|
-
const onScroll = jest.fn();
|
|
26
|
-
const user = userEvent.setup();
|
|
27
|
-
render(React.createElement("div", { style: { paddingTop: 100000 } },
|
|
28
|
-
React.createElement(AnimateBlock, { onScroll: onScroll, qa: qaId })));
|
|
29
|
-
const component = screen.getByTestId(qaId);
|
|
30
|
-
await user.hover(component);
|
|
31
|
-
expect(onScroll).toHaveBeenCalledTimes(1);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import { AuthorType } from '../../../models';
|
|
4
|
-
import Author from '../Author';
|
|
5
|
-
const testId = 'author';
|
|
6
|
-
const author = {
|
|
7
|
-
firstName: 'John',
|
|
8
|
-
secondName: 'Doe',
|
|
9
|
-
description: 'Web designer',
|
|
10
|
-
avatar: 'https://storage.yandexcloud.net/cloud-www-assets/constructor/storybook/images/img-gray.png',
|
|
11
|
-
};
|
|
12
|
-
describe('Author', () => {
|
|
13
|
-
test('Render author by default', async () => {
|
|
14
|
-
render(React.createElement(Author, { author: author, dataQa: testId }));
|
|
15
|
-
const object = screen.getByTestId(testId);
|
|
16
|
-
expect(object).toBeInTheDocument();
|
|
17
|
-
});
|
|
18
|
-
test('Has full name', async () => {
|
|
19
|
-
const name = `${author.firstName} ${author.secondName}`;
|
|
20
|
-
render(React.createElement(Author, { author: author, dataQa: testId }));
|
|
21
|
-
const object = screen.getByText(name);
|
|
22
|
-
expect(object).toBeInTheDocument();
|
|
23
|
-
});
|
|
24
|
-
test('Has first name only', async () => {
|
|
25
|
-
const name = author.firstName;
|
|
26
|
-
render(React.createElement(Author, { author: Object.assign(Object.assign({}, author), { secondName: '' }), dataQa: testId }));
|
|
27
|
-
const object = screen.getByText(name);
|
|
28
|
-
expect(object).toBeInTheDocument();
|
|
29
|
-
});
|
|
30
|
-
test('Has avatar', async () => {
|
|
31
|
-
render(React.createElement(Author, { author: author, dataQa: testId }));
|
|
32
|
-
const avatar = screen.getByRole('img');
|
|
33
|
-
expect(avatar).toBeInTheDocument();
|
|
34
|
-
expect(avatar).toHaveAttribute('src', author.avatar);
|
|
35
|
-
});
|
|
36
|
-
test('Has description', async () => {
|
|
37
|
-
render(React.createElement(Author, { author: author, dataQa: testId }));
|
|
38
|
-
const object = screen.getByText(author.description);
|
|
39
|
-
expect(object).toBeInTheDocument();
|
|
40
|
-
});
|
|
41
|
-
test.each(new Array(AuthorType.Column, AuthorType.Line))('Render with given "%s" type', (type) => {
|
|
42
|
-
render(React.createElement(Author, { author: author, dataQa: testId, type: type }));
|
|
43
|
-
const object = screen.getByTestId(testId);
|
|
44
|
-
expect(object).toHaveClass(`pc-author_type_${type}`);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import userEvent from '@testing-library/user-event';
|
|
4
|
-
import { LocationContext } from '../../../context/locationContext';
|
|
5
|
-
import BackLink from '../BackLink';
|
|
6
|
-
const backLinkProps = {
|
|
7
|
-
url: '#',
|
|
8
|
-
title: 'Button Title',
|
|
9
|
-
theme: 'default',
|
|
10
|
-
size: 's',
|
|
11
|
-
className: 'customClassName',
|
|
12
|
-
shouldHandleBackAction: true,
|
|
13
|
-
onClick: () => { },
|
|
14
|
-
};
|
|
15
|
-
describe('BackLink', () => {
|
|
16
|
-
test('Default render', async () => {
|
|
17
|
-
render(React.createElement(BackLink, Object.assign({}, backLinkProps)));
|
|
18
|
-
const backLink = screen.getByRole('button');
|
|
19
|
-
expect(backLink).toBeInTheDocument();
|
|
20
|
-
});
|
|
21
|
-
test('Has custom class', async () => {
|
|
22
|
-
render(React.createElement(BackLink, Object.assign({}, backLinkProps)));
|
|
23
|
-
const backLink = screen.getByRole('button');
|
|
24
|
-
expect(backLink).toHaveClass(backLinkProps.className);
|
|
25
|
-
});
|
|
26
|
-
test('Should render <a /> tag', async () => {
|
|
27
|
-
render(React.createElement(BackLink, Object.assign({}, backLinkProps, { shouldHandleBackAction: false })));
|
|
28
|
-
const backLink = screen.getByRole('link');
|
|
29
|
-
expect(backLink).toBeVisible();
|
|
30
|
-
expect(backLink).toHaveAttribute('href', backLinkProps.url);
|
|
31
|
-
});
|
|
32
|
-
test('Should render title', async () => {
|
|
33
|
-
render(React.createElement(BackLink, Object.assign({}, backLinkProps)));
|
|
34
|
-
const backLink = screen.getByText(backLinkProps.title);
|
|
35
|
-
expect(backLink).toBeInTheDocument();
|
|
36
|
-
});
|
|
37
|
-
test('Call onClick', async () => {
|
|
38
|
-
const user = userEvent.setup();
|
|
39
|
-
const handleClick = jest.fn();
|
|
40
|
-
render(React.createElement(LocationContext.Provider, { value: { history: { push: jest.fn() } } },
|
|
41
|
-
React.createElement(BackLink, Object.assign({}, backLinkProps, { onClick: handleClick }))));
|
|
42
|
-
const backLink = screen.getByRole('button');
|
|
43
|
-
await user.click(backLink);
|
|
44
|
-
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
45
|
-
});
|
|
46
|
-
test.each(new Array('s', 'm', 'l', 'xl'))('Render with given "%s" size', (size) => {
|
|
47
|
-
render(React.createElement(BackLink, Object.assign({}, backLinkProps, { size: size })));
|
|
48
|
-
const backLink = screen.getByRole('button');
|
|
49
|
-
expect(backLink).toHaveClass(`yc-button_size_${size}`);
|
|
50
|
-
});
|
|
51
|
-
test.each(new Array('default', 'special'))('Render with given "%s" theme', (theme) => {
|
|
52
|
-
const matchView = {
|
|
53
|
-
default: 'flat-secondary',
|
|
54
|
-
special: 'flat-contrast',
|
|
55
|
-
};
|
|
56
|
-
render(React.createElement(BackLink, Object.assign({}, backLinkProps, { theme: theme })));
|
|
57
|
-
const backLink = screen.getByRole('button');
|
|
58
|
-
expect(backLink).toHaveClass(`yc-button_view_${matchView[theme]}`);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import { qaIdByDefault } from '../../../components/Anchor/Anchor';
|
|
4
|
-
import { GridColumnSize } from '../../../grid';
|
|
5
|
-
import BlockBase from '../BlockBase';
|
|
6
|
-
const qaId = 'block-base-component';
|
|
7
|
-
describe('BlockBase', () => {
|
|
8
|
-
test('render component by default', async () => {
|
|
9
|
-
render(React.createElement(BlockBase, { qa: qaId }));
|
|
10
|
-
const component = screen.getByTestId(qaId);
|
|
11
|
-
expect(component).toBeInTheDocument();
|
|
12
|
-
expect(component).toBeVisible();
|
|
13
|
-
expect(component).not.toBeDisabled();
|
|
14
|
-
});
|
|
15
|
-
test('add className', () => {
|
|
16
|
-
const className = 'my-class';
|
|
17
|
-
render(React.createElement(BlockBase, { qa: qaId, className: className }));
|
|
18
|
-
const component = screen.getByTestId(qaId);
|
|
19
|
-
expect(component).toHaveClass(className);
|
|
20
|
-
});
|
|
21
|
-
test('should reset paddings', () => {
|
|
22
|
-
render(React.createElement(BlockBase, { qa: qaId, resetPaddings: true }));
|
|
23
|
-
const component = screen.getByTestId(qaId);
|
|
24
|
-
expect(component).toHaveClass('pc-block-base_reset-paddings');
|
|
25
|
-
});
|
|
26
|
-
test.each(new Array(...Object.values(GridColumnSize)))('render with given "%s" size', (size) => {
|
|
27
|
-
render(React.createElement(BlockBase, { qa: qaId, visible: size }));
|
|
28
|
-
const component = screen.getByTestId(qaId);
|
|
29
|
-
expect(component).toHaveClass(`d-${size}-block`);
|
|
30
|
-
});
|
|
31
|
-
test('should have anchor', () => {
|
|
32
|
-
const anchor = {
|
|
33
|
-
text: 'anchor',
|
|
34
|
-
url: 'https://github.com/gravity-ui/',
|
|
35
|
-
};
|
|
36
|
-
render(React.createElement(BlockBase, { anchor: anchor }));
|
|
37
|
-
const component = screen.getByTestId(qaIdByDefault);
|
|
38
|
-
expect(component).toBeInTheDocument();
|
|
39
|
-
expect(component).toHaveAttribute('id', anchor.url);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import userEvent from '@testing-library/user-event';
|
|
4
|
-
import Button from '../Button';
|
|
5
|
-
import { ICON_QA } from '../utils';
|
|
6
|
-
const qaId = 'button-component';
|
|
7
|
-
const buttonProps = {
|
|
8
|
-
text: 'Button Text',
|
|
9
|
-
url: 'https://github.com/gravity-ui/',
|
|
10
|
-
target: '_blank',
|
|
11
|
-
img: {
|
|
12
|
-
url: 'https://storage.yandexcloud.net/cloud-www-assets/constructor/storybook/images/icon_1_light.svg',
|
|
13
|
-
position: 'left',
|
|
14
|
-
alt: 'alt-text',
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
const buttonViews = [
|
|
18
|
-
'normal',
|
|
19
|
-
'action',
|
|
20
|
-
'outlined',
|
|
21
|
-
'outlined-info',
|
|
22
|
-
'outlined-danger',
|
|
23
|
-
'raised',
|
|
24
|
-
'flat',
|
|
25
|
-
'flat-info',
|
|
26
|
-
'flat-danger',
|
|
27
|
-
'flat-secondary',
|
|
28
|
-
'normal-contrast',
|
|
29
|
-
'outlined-contrast',
|
|
30
|
-
'flat-contrast',
|
|
31
|
-
'github',
|
|
32
|
-
'scale',
|
|
33
|
-
'monochrome',
|
|
34
|
-
];
|
|
35
|
-
describe('Button', () => {
|
|
36
|
-
test('render button by default', async () => {
|
|
37
|
-
render(React.createElement(Button, { text: buttonProps.text }));
|
|
38
|
-
const button = screen.getByRole('button');
|
|
39
|
-
expect(button).toBeInTheDocument();
|
|
40
|
-
expect(button).toBeVisible();
|
|
41
|
-
expect(button).not.toBeDisabled();
|
|
42
|
-
});
|
|
43
|
-
test('should render <a /> tag', async () => {
|
|
44
|
-
render(React.createElement(Button, { text: buttonProps.text, url: buttonProps.url, target: buttonProps.target }));
|
|
45
|
-
const button = screen.getByRole('link');
|
|
46
|
-
expect(button).toBeVisible();
|
|
47
|
-
expect(button).toHaveAttribute('href', buttonProps.url);
|
|
48
|
-
expect(button).toHaveAttribute('target', buttonProps.target);
|
|
49
|
-
});
|
|
50
|
-
test('call onClick', async () => {
|
|
51
|
-
const user = userEvent.setup();
|
|
52
|
-
const handleOnClick = jest.fn();
|
|
53
|
-
render(React.createElement(Button, { text: buttonProps.text, onClick: handleOnClick }));
|
|
54
|
-
const button = screen.getByRole('button');
|
|
55
|
-
await user.click(button);
|
|
56
|
-
expect(handleOnClick).toHaveBeenCalledTimes(1);
|
|
57
|
-
});
|
|
58
|
-
test.each(new Array('s', 'm', 'l', 'xl'))('render with given "%s" size', (size) => {
|
|
59
|
-
render(React.createElement(Button, { text: buttonProps.text, size: size, qa: qaId }));
|
|
60
|
-
const button = screen.getByTestId(qaId);
|
|
61
|
-
expect(button).toHaveClass(`pc-button-block_size_${size}`);
|
|
62
|
-
});
|
|
63
|
-
test.each(new Array(...buttonViews))('render with given "%s" view', (theme) => {
|
|
64
|
-
render(React.createElement(Button, { text: buttonProps.text, theme: theme, qa: qaId }));
|
|
65
|
-
const button = screen.getByTestId(qaId);
|
|
66
|
-
expect(button).toHaveClass(`pc-button-block_theme_${theme}`);
|
|
67
|
-
});
|
|
68
|
-
test('add className', () => {
|
|
69
|
-
const className = 'my-class';
|
|
70
|
-
render(React.createElement(Button, { text: buttonProps.text, className: className, qa: qaId }));
|
|
71
|
-
const button = screen.getByTestId(qaId);
|
|
72
|
-
expect(button).toHaveClass(className);
|
|
73
|
-
});
|
|
74
|
-
test('should render icon', () => {
|
|
75
|
-
render(React.createElement(Button, { text: buttonProps.text, img: buttonProps.img }));
|
|
76
|
-
const button = screen.getByRole('button');
|
|
77
|
-
const iconComponent = screen.getByRole('img');
|
|
78
|
-
expect(iconComponent).toBeVisible();
|
|
79
|
-
expect(button).toContainElement(iconComponent);
|
|
80
|
-
});
|
|
81
|
-
test('should render github icon', () => {
|
|
82
|
-
render(React.createElement(Button, { text: buttonProps.text, img: buttonProps.img, theme: "github" }));
|
|
83
|
-
const button = screen.getByRole('button');
|
|
84
|
-
const iconComponent = screen.getByTestId(ICON_QA);
|
|
85
|
-
expect(iconComponent).toBeVisible();
|
|
86
|
-
expect(button).toContainElement(iconComponent);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import userEvent from '@testing-library/user-event';
|
|
4
|
-
import ButtonTabs from '../ButtonTabs';
|
|
5
|
-
const qaId = 'button-tabs-component';
|
|
6
|
-
const items = [
|
|
7
|
-
{
|
|
8
|
-
id: '0',
|
|
9
|
-
title: 'tab-1',
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
id: '1',
|
|
13
|
-
title: 'tab-2',
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
id: '2',
|
|
17
|
-
title: 'tab-3',
|
|
18
|
-
},
|
|
19
|
-
];
|
|
20
|
-
describe('ButtonTabs', () => {
|
|
21
|
-
test('render ButtonTabs by default', async () => {
|
|
22
|
-
render(React.createElement(ButtonTabs, { items: items, qa: qaId }));
|
|
23
|
-
const buttonTabs = screen.getByTestId(qaId);
|
|
24
|
-
expect(buttonTabs).toBeInTheDocument();
|
|
25
|
-
expect(buttonTabs).toBeVisible();
|
|
26
|
-
expect(buttonTabs).not.toBeDisabled();
|
|
27
|
-
});
|
|
28
|
-
test('has active tab', async () => {
|
|
29
|
-
const activeTabId = 1;
|
|
30
|
-
render(React.createElement(ButtonTabs, { items: items, qa: qaId, activeTab: String(activeTabId) }));
|
|
31
|
-
const buttons = screen.getAllByRole('button');
|
|
32
|
-
buttons.forEach((button, index) => {
|
|
33
|
-
if (index === activeTabId) {
|
|
34
|
-
expect(button).toHaveClass('pc-button-tabs__item_active');
|
|
35
|
-
}
|
|
36
|
-
expect(button).toHaveClass('pc-button-block_theme_normal');
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
test('add className', () => {
|
|
40
|
-
const className = 'my-class';
|
|
41
|
-
render(React.createElement(ButtonTabs, { items: items, qa: qaId, className: className }));
|
|
42
|
-
const buttonTabs = screen.getByTestId(qaId);
|
|
43
|
-
expect(buttonTabs).toHaveClass(className);
|
|
44
|
-
});
|
|
45
|
-
test('call onSelectTab', async () => {
|
|
46
|
-
const user = userEvent.setup();
|
|
47
|
-
const handleOnClick = jest.fn();
|
|
48
|
-
render(React.createElement(ButtonTabs, { items: items, qa: qaId, onSelectTab: handleOnClick }));
|
|
49
|
-
const buttons = screen.getAllByRole('button');
|
|
50
|
-
buttons.forEach(async (button, i) => {
|
|
51
|
-
await user.click(button);
|
|
52
|
-
expect(handleOnClick).toHaveBeenCalledTimes(i + 1);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|
/package/build/{cjs/components/Anchor/__tests__/Anchor.test.d.ts → esm/editor/types/index.js}
RENAMED
|
File without changes
|
|
File without changes
|