linear-react-components-ui 1.0.10-rc.0 → 1.0.10-rc.2

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 (83) hide show
  1. package/.eslintrc.json +1 -0
  2. package/README.md +19 -12
  3. package/lib/alerts/alert.spec.js +133 -0
  4. package/lib/assets/styles/dialog.scss +9 -4
  5. package/lib/assets/styles/effects.scss +2 -2
  6. package/lib/assets/styles/radio.scss +52 -8
  7. package/lib/assets/styles/tooltip.scss +42 -2
  8. package/lib/avatar/avatar.spec.js +190 -0
  9. package/lib/badge/badge.spec.js +127 -0
  10. package/lib/buttons/DefaultButton.js +2 -1
  11. package/lib/buttons/SpinnerLoading.js +230 -0
  12. package/lib/buttons/buttons.spec.js +504 -0
  13. package/lib/buttons/types.d.ts +1 -0
  14. package/lib/calendar/calendar.spec.js +171 -0
  15. package/lib/checkbox/checkbox.spec.js +215 -0
  16. package/lib/dialog/base/Header.js +12 -1
  17. package/lib/dialog/base/index.js +73 -14
  18. package/lib/dialog/dialog.spec.js +488 -0
  19. package/lib/dialog/form/index.d.ts +4 -3
  20. package/lib/dialog/form/index.js +11 -4
  21. package/lib/dialog/types.d.ts +4 -1
  22. package/lib/drawer/Drawer.spec.js +258 -0
  23. package/lib/dropdown/Popup.js +5 -0
  24. package/lib/dropdown/dropdown.spec.js +169 -0
  25. package/lib/fieldset/fieldset.spec.js +329 -0
  26. package/lib/form/FieldArray.js +2 -2
  27. package/lib/form/form.spec.js +293 -0
  28. package/lib/gridlayout/gridLayout.spec.js +169 -0
  29. package/lib/icons/helper.d.ts +4 -0
  30. package/lib/icons/helper.js +4 -0
  31. package/lib/icons/icons.spec.js +86 -0
  32. package/lib/inputs/base/base.spec.js +690 -0
  33. package/lib/inputs/base/index.js +1 -0
  34. package/lib/inputs/color/color_input.spec.js +174 -0
  35. package/lib/inputs/date/date.spec.js +354 -0
  36. package/lib/inputs/date/helpers.d.ts +1 -1
  37. package/lib/inputs/date/helpers.js +3 -2
  38. package/lib/inputs/date/index.js +23 -9
  39. package/lib/inputs/date/types.d.ts +2 -1
  40. package/lib/inputs/mask/BaseMask.js +20 -5
  41. package/lib/inputs/mask/helpers.js +1 -1
  42. package/lib/inputs/mask/imaskHOC.js +1 -1
  43. package/lib/inputs/mask/input_mask.spec.js +607 -0
  44. package/lib/inputs/multiSelect/Dropdown.js +3 -3
  45. package/lib/inputs/multiSelect/index.js +10 -9
  46. package/lib/inputs/multiSelect/types.d.ts +4 -3
  47. package/lib/inputs/number/format_number.d.ts +2 -1
  48. package/lib/inputs/number/format_number.js +11 -2
  49. package/lib/inputs/number/numberfield.spec.js +215 -0
  50. package/lib/inputs/search/search_input.spec.js +209 -0
  51. package/lib/inputs/select/select.spec.js +395 -0
  52. package/lib/inputs/select/simple/index.js +5 -1
  53. package/lib/inputs/select/types.d.ts +1 -1
  54. package/lib/inputs/text/textfield.spec.js +215 -0
  55. package/lib/inputs/textarea/index.js +1 -1
  56. package/lib/inputs/textarea/textarea.spec.js +59 -0
  57. package/lib/internals/types.d.ts +1 -0
  58. package/lib/internals/withTooltip.js +13 -6
  59. package/lib/labelMessages/labelMessages.spec.js +176 -0
  60. package/lib/labels/label.spec.js +162 -0
  61. package/lib/list/list.spec.js +769 -0
  62. package/lib/menus/float/float-menu.spec.js +221 -0
  63. package/lib/menus/sidenav/sidenav.spec.js +379 -0
  64. package/lib/panel/panel.spec.js +216 -0
  65. package/lib/popover/popover.spec.js +146 -0
  66. package/lib/progress/progress.spec.js +94 -0
  67. package/lib/radio/index.d.ts +2 -1
  68. package/lib/radio/index.js +3 -1
  69. package/lib/radio/radio.spec.js +189 -0
  70. package/lib/radio/types.d.ts +2 -0
  71. package/lib/spinner/spinner.spec.js +152 -0
  72. package/lib/split/split.spec.js +163 -0
  73. package/lib/table/table.spec.js +352 -0
  74. package/lib/tabs/tabs.spec.js +321 -0
  75. package/lib/toolbar/toolbar.spec.js +394 -0
  76. package/lib/tooltip/index.d.ts +1 -1
  77. package/lib/tooltip/index.js +5 -1
  78. package/lib/tooltip/tooltip.spec.js +215 -0
  79. package/lib/tooltip/types.d.ts +1 -0
  80. package/lib/treeview/index.js +1 -0
  81. package/lib/treeview/treeview.spec.js +279 -0
  82. package/lib/uitour/uitour.spec.js +176 -0
  83. package/package.json +6 -3
package/.eslintrc.json CHANGED
@@ -67,6 +67,7 @@
67
67
  },
68
68
  "plugins": ["react", "@typescript-eslint", "class-property"],
69
69
  "rules": {
70
+ "jsx-a11y/no-static-element-interactions": "off",
70
71
  "react/jsx-indent": "off",
71
72
  "react/jsx-uses-react": "off",
72
73
  "react/react-in-jsx-scope": "off",
package/README.md CHANGED
@@ -69,22 +69,29 @@ ficando da seguinte maneira:
69
69
  `npm version 0.4.75`
70
70
 
71
71
 
72
- ### Publicar versão de demonstração no Heroku
73
-
72
+ ### Publicar versão de demonstração na VERCEL
74
73
  Pré-requesistos
75
- - Ter um conta no heroku
76
- - Ser um colaborador do projeto no Heroku
77
- - Ter o heroku cli instalado: https://devcenter.heroku.com/articles/heroku-cli#install-the-heroku-cli
74
+ - Ter a CLI da Vercel instalada
78
75
 
79
- Fazer login no Heroku
80
- `heroku login`
76
+ Instalação da CLI Vercel caso ainda não tenha
77
+
78
+ `npm i -g vercel` ou `yarn global add vercel`
79
+
80
+ **Obs: Verifique se a instalação da CLI ocorreu bem, faça o teste com o seguinte comando no seu terminal, `vercel --version`, caso não seja retornado a versão instalada, será necessário configurar o comando `vercel` no seu terminal, segue um link de apoio: https://www.google.com/search?q=command+not+found%3A+vercel**
81
+
82
+ Login na Vercel após já possuir a CLI instalada
83
+
84
+ `vercel login desenvweb.linear@gmail.com`
81
85
 
82
- No diretorio da aplicação clonar
83
- `heroku git:clone -a linear-react-comp-demo demo`
86
+ **Após executar o comando de login, será necessário clicar no link de confirmação enviado no e-mail informado no comando, assim a Vercel gera um token de acesso local, permitindo então acesso a conta da hospedagem. Esse e-mail foi definido por Deivisson e somente ele possui acesso, portanto solicite a ele o link de confirmação.**
84
87
 
85
- Executar o comando
86
- `npm run deploy:heroku`
88
+ Publicar versão do pacote na Vercel
89
+
90
+ `npm run deploy:vercel` ou `yarn deploy:vercel`
91
+
92
+ Obs: Ocorrendo tudo OK no processo de build e publicação no seu terminal, a Vercel atualiza o link https://linear-components-ui.vercel.app/#/ com a versão enviada já em produção. A documentação da CLI é bem completa e fácil de entender, qualquer dúvida basta consultar o seguinte link:
93
+
94
+ CLI Documentação - https://vercel.com/docs/cli
87
95
 
88
- Obs: Para publicar a versão, é necessario fazer o clone do projeto no heroku.
89
96
 
90
97
 
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ require("babel-polyfill");
6
+
7
+ require("@testing-library/jest-dom");
8
+
9
+ var _react2 = require("@testing-library/react");
10
+
11
+ var _Message = _interopRequireDefault(require("./Message"));
12
+
13
+ var _icons = _interopRequireDefault(require("../icons"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
18
+
19
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
20
+
21
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+
23
+ var mockAlert = function mockAlert(props) {
24
+ return /*#__PURE__*/_react.default.createElement(_Message.default, _extends({
25
+ id: 3,
26
+ message: "Alerta",
27
+ position: "rightTop",
28
+ closeButton: true,
29
+ customClass: "mock-alert",
30
+ timeout: 500
31
+ }, props));
32
+ };
33
+
34
+ describe('Alert', function () {
35
+ describe('Message', function () {
36
+ it('should render correctly', function () {
37
+ var mockHandleClose = jest.fn();
38
+
39
+ var _render = (0, _react2.render)(mockAlert({
40
+ handleClose: mockHandleClose
41
+ })),
42
+ container = _render.container;
43
+
44
+ expect(container.firstChild).toBeTruthy();
45
+ expect(container.firstChild).toHaveTextContent('Alerta');
46
+ });
47
+ it('should close with timeout 500ms', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
48
+ var mockHandleClose;
49
+ return regeneratorRuntime.wrap(function _callee$(_context) {
50
+ while (1) {
51
+ switch (_context.prev = _context.next) {
52
+ case 0:
53
+ mockHandleClose = jest.fn();
54
+ (0, _react2.render)(mockAlert({
55
+ handleClose: mockHandleClose
56
+ }));
57
+ _context.next = 4;
58
+ return (0, _react2.waitFor)(function () {
59
+ return expect(mockHandleClose).toBeCalledTimes(1);
60
+ });
61
+
62
+ case 4:
63
+ case "end":
64
+ return _context.stop();
65
+ }
66
+ }
67
+ }, _callee);
68
+ })));
69
+ it('should apply custom class', function () {
70
+ var mockHandleClose = jest.fn();
71
+
72
+ var _render2 = (0, _react2.render)(mockAlert({
73
+ handleClose: mockHandleClose
74
+ })),
75
+ container = _render2.container;
76
+
77
+ expect(container.firstChild).toHaveClass('mock-alert');
78
+ });
79
+ it('should render icon', function () {
80
+ var mockHandleClose = jest.fn();
81
+
82
+ var _render3 = (0, _react2.render)(mockAlert({
83
+ handleClose: mockHandleClose,
84
+ icon: /*#__PURE__*/_react.default.createElement(_icons.default, {
85
+ name: "user"
86
+ })
87
+ })),
88
+ container = _render3.container,
89
+ getByTestId = _render3.getByTestId;
90
+
91
+ expect(container.querySelector('.-icon')).toContainElement(getByTestId('icon'));
92
+ });
93
+ it('should render icon by iconName', function () {
94
+ var mockHandleClose = jest.fn();
95
+
96
+ var _render4 = (0, _react2.render)(mockAlert({
97
+ handleClose: mockHandleClose,
98
+ iconName: 'user'
99
+ })),
100
+ container = _render4.container,
101
+ getByTestId = _render4.getByTestId;
102
+
103
+ expect(container.querySelector('.-icon')).toContainElement(getByTestId('icon'));
104
+ });
105
+ it('should change icon color', function () {
106
+ var mockHandleClose = jest.fn();
107
+
108
+ var _render5 = (0, _react2.render)(mockAlert({
109
+ handleClose: mockHandleClose,
110
+ iconName: 'user',
111
+ color: 'red'
112
+ })),
113
+ getByTestId = _render5.getByTestId;
114
+
115
+ expect(getByTestId('icon')).toHaveAttribute('fill', 'red');
116
+ });
117
+ it('should fire event on click', function () {
118
+ var mockHandleClose = jest.fn();
119
+
120
+ var _render6 = (0, _react2.render)(mockAlert({
121
+ handleClose: mockHandleClose
122
+ })),
123
+ container = _render6.container,
124
+ getByRole = _render6.getByRole;
125
+
126
+ _react2.fireEvent.click(getByRole('button'));
127
+
128
+ expect(container.querySelector('.close')).toBeInTheDocument();
129
+ expect(container.querySelector('.close-button')).toBeInTheDocument();
130
+ expect(mockHandleClose).toBeCalledTimes(1);
131
+ });
132
+ });
133
+ });
@@ -28,7 +28,7 @@
28
28
  background: $default-color;
29
29
  padding: 2px;
30
30
  border-radius: 6px;
31
- animation: 1s ease-out 0s 1 slideInFromTop;
31
+ animation: 0.3s ease-out 0s 1 slideInFromTop;
32
32
  > .dialog-content {
33
33
  height: 100%;
34
34
  text-align: left;
@@ -55,12 +55,18 @@
55
55
  padding-left: 10px;
56
56
  padding-right: 10px;
57
57
  padding-top: 3px;
58
+ cursor: grab;
59
+ &:active {
60
+ cursor: grabbing;
61
+ }
58
62
  > .left > .icon-component {
59
63
  margin-right: 10px;
60
64
  }
61
65
  > .right {
62
- flex-grow: 1;
66
+ width: 100%;
63
67
  margin-left: 2px;
68
+ display: flex;
69
+ align-items: center;
64
70
  &.modal-title {
65
71
  color: #4e4c4c;
66
72
  font-weight: 600;
@@ -69,10 +75,9 @@
69
75
  .close-button {
70
76
  color: #777;
71
77
  cursor: pointer;
72
- float: right;
73
78
  font-size: 16px;
74
79
  text-shadow: 0 1px 0 $default-color;
75
- margin-top: -25px;
80
+ margin-left: auto;
76
81
  }
77
82
  }
78
83
  .footer {
@@ -1,10 +1,10 @@
1
1
  //Efeito Utilizado no Dialog
2
2
  @keyframes slideInFromTop {
3
- 0% {
3
+ from {
4
4
  transform: translateY(-60%);
5
5
  -webkit-font-smoothing: subpixel-antialiased;
6
6
  }
7
- 30% {
7
+ to {
8
8
  transform: translateY(0);
9
9
  -webkit-font-smoothing: subpixel-antialiased;
10
10
  }
@@ -37,14 +37,26 @@ $radio-button-ripple-size: 15px;
37
37
  left: -9999px;
38
38
  }
39
39
 
40
+ .radio-component:focus + label:before {
41
+ box-shadow: 0 0 2px 1px $radio-button-checked-color;
42
+ }
43
+
40
44
  .radio-component:checked + .description,
41
45
  .radio-component:not(:checked) + .description {
42
46
  position: relative;
43
- padding-left: 28px;
47
+ padding-left: 1.35rem;
44
48
  cursor: pointer;
45
49
  line-height: 20px;
46
50
  display: inline-block;
47
- color: $font-color-soft;
51
+ color: $font-color-soft;
52
+ &.-medium {
53
+ padding-left: 1.6rem;
54
+ padding-top: 0.1rem;
55
+ }
56
+ &.-large {
57
+ padding-left: 1.875rem;
58
+ padding-top: 0.2rem;
59
+ }
48
60
  }
49
61
 
50
62
  .disabled + .description {
@@ -57,22 +69,54 @@ $radio-button-ripple-size: 15px;
57
69
  position: absolute;
58
70
  left: 0;
59
71
  top: 0;
60
- width: 20px;
61
- height: 20px;
62
72
  border: 1px solid $component-border-color;
63
73
  border-radius: 100%;
64
74
  background: $default-color;
65
75
  }
66
76
 
77
+ .-small:before{
78
+ width: 16px;
79
+ height: 16px;
80
+ top: 0.225rem;
81
+ left: 0.265rem;
82
+ }
83
+ .-medium:before{
84
+ width: 20px;
85
+ height: 20px;
86
+ top: 0.245rem;
87
+ left: 0.285rem;
88
+ }
89
+ .-large:before{
90
+ width: 24px;
91
+ height: 24px;
92
+ top: 0.245rem;
93
+ left: 0.285rem;
94
+ }
95
+
96
+ .-small:after{
97
+ width: 8px;
98
+ height: 8px;
99
+ top: 0.23rem;
100
+ left: 0.27rem;
101
+ }
102
+ .-medium:after{
103
+ width: 12px;
104
+ height: 12px;
105
+ top: 0.24rem;
106
+ left: 0.26rem;
107
+ }
108
+ .-large:after{
109
+ width: 16px;
110
+ height: 16px;
111
+ top: 0.245rem;
112
+ left: 0.285rem;
113
+ }
114
+
67
115
  .radio-component:checked + .description:after,
68
116
  .radio-component:not(:checked) + .description:after {
69
117
  content: '';
70
- width: 12px;
71
- height: 12px;
72
118
  background: $radio-button-checked-color;
73
119
  position: absolute;
74
- top: 4px;
75
- left: 4px;
76
120
  border-radius: 100%;
77
121
  -webkit-transition: all 0.2s ease;
78
122
  transition: all 0.2s ease;
@@ -1,3 +1,5 @@
1
+ @import "colors.scss";
2
+
1
3
  .tooltip-component {
2
4
  font-family: 'Roboto', sans-serif;
3
5
  position: absolute;
@@ -5,7 +7,7 @@
5
7
  background: rgba(black, 0.85);
6
8
  border-radius: 5px;
7
9
  color: white;
8
- box-shadow: 2px 2px 3px rgba(0 ,0, 0, 0.3);
10
+ box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.3);
9
11
  text-align: center;
10
12
  font-size: 13px;
11
13
  z-index: 999999;
@@ -45,11 +47,49 @@
45
47
  &.bottom::after {
46
48
  content: " ";
47
49
  position: absolute;
48
- bottom: 100%;
50
+ bottom: 100%;
49
51
  left: 50%;
50
52
  margin-left: -5px;
51
53
  border-width: 5px;
52
54
  border-style: solid;
53
55
  border-color: transparent transparent rgba(black, 0.85) transparent;
54
56
  }
57
+ &.tooltip-error {
58
+ background: $danger-hover-color;
59
+ color: $default-color;
60
+ z-index: 99999;
61
+ &::before {
62
+ content: '';
63
+ position: absolute;
64
+ left: 0;
65
+ top: 0;
66
+ right: 0;
67
+ bottom: 0;
68
+ height: 100%;
69
+ width: 100%;
70
+ background: inherit;
71
+ border-radius: inherit;
72
+ z-index: -1;
73
+ opacity: 0.7;
74
+ animation: tooltip-component 2s ease-out infinite;
75
+ }
76
+ @keyframes tooltip-component {
77
+ 100% {
78
+ transform: scale(1.05, 1.25);
79
+ opacity: 0;
80
+ }
81
+ }
82
+ &.left::after {
83
+ border-left-color: $danger-hover-color;
84
+ }
85
+ &.right::after {
86
+ border-right-color: $danger-hover-color;
87
+ }
88
+ &.top::after {
89
+ border-top-color: $danger-hover-color;
90
+ }
91
+ &.bottom::after {
92
+ border-bottom-color: $danger-hover-color;
93
+ }
94
+ }
55
95
  }
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ require("babel-polyfill");
8
+
9
+ require("@testing-library/jest-dom/extend-expect");
10
+
11
+ var _react2 = require("@testing-library/react");
12
+
13
+ var _ = _interopRequireDefault(require("."));
14
+
15
+ var _icons = _interopRequireDefault(require("../icons"));
16
+
17
+ var _list = _interopRequireWildcard(require("../list"));
18
+
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+
25
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
26
+
27
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
28
+
29
+ describe('Avatar', function () {
30
+ it('should render correctly', function () {
31
+ var _render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
32
+ label: "B"
33
+ })),
34
+ container = _render.container;
35
+
36
+ expect(container.firstChild).toHaveClass('avatar-component -default');
37
+ expect(container.firstChild).toHaveTextContent('B');
38
+ expect(_react2.screen.getByRole('button')).toBeInTheDocument();
39
+ });
40
+ it('should apply customClass', function () {
41
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
42
+ label: "B",
43
+ customClass: "avatarteste"
44
+ })),
45
+ container = _render2.container;
46
+
47
+ expect(container.firstChild).toHaveClass('avatarteste');
48
+ });
49
+ it('should change color', function () {
50
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
51
+ label: "B",
52
+ color: "#333"
53
+ })),
54
+ container = _render3.container;
55
+
56
+ expect(container.firstChild).toHaveStyle('background-color: #333');
57
+ });
58
+ it('should change to square', function () {
59
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
60
+ label: "B",
61
+ square: true
62
+ })),
63
+ container = _render4.container;
64
+
65
+ expect(container.firstChild).toHaveClass('-square');
66
+ });
67
+ it('should change to mini', function () {
68
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
69
+ label: "B",
70
+ size: "mini"
71
+ })),
72
+ container = _render5.container;
73
+
74
+ expect(container.firstChild).toHaveClass('-mini');
75
+ });
76
+ it('should render icon with iconName', function () {
77
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
78
+ iconName: "calc"
79
+ })),
80
+ container = _render6.container;
81
+
82
+ expect(container.firstChild).toContainElement(_react2.screen.getByTestId('icon'));
83
+ });
84
+ it('should render Icon with icon', function () {
85
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
86
+ icon: /*#__PURE__*/_react.default.createElement(_icons.default, {
87
+ name: "user"
88
+ })
89
+ })),
90
+ container = _render7.container;
91
+
92
+ expect(container.firstChild).toContainElement(_react2.screen.getByTestId('icon'));
93
+ });
94
+ it('should render with image', function () {
95
+ var mockAvatar = /*#__PURE__*/_react.default.createElement(_.default, {
96
+ src: "https://yt3.ggpht.com/a-/AAuE7mDGQh9L3n_EULfeZEO9rs_JR4BY376CSrlxdw=s900-mo-c-c0xffffffff-rj-k-no",
97
+ srcAlt: "Avatar Teste"
98
+ });
99
+
100
+ var _render8 = (0, _react2.render)(mockAvatar),
101
+ container = _render8.container;
102
+
103
+ expect(container.firstChild).toContainElement(_react2.screen.getByAltText('Avatar Teste'));
104
+ expect(_react2.screen.getByAltText('Avatar Teste')).toHaveClass('imgavatar');
105
+ });
106
+ it('should not render icon if has image', function () {
107
+ var mockAvatar = /*#__PURE__*/_react.default.createElement(_.default, {
108
+ src: "https://yt3.ggpht.com/a-/AAuE7mDGQh9L3n_EULfeZEO9rs_JR4BY376CSrlxdw=s900-mo-c-c0xffffffff-rj-k-no",
109
+ srcAlt: "Avatar Teste"
110
+ });
111
+
112
+ var _render9 = (0, _react2.render)(mockAvatar),
113
+ container = _render9.container;
114
+
115
+ expect(container.firstChild).not.toContainElement(document.querySelector('.icon-component'));
116
+ });
117
+ it('should change size', function () {
118
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
119
+ label: "B",
120
+ width: "56px",
121
+ height: "56px"
122
+ })),
123
+ container = _render10.container;
124
+
125
+ expect(container.firstChild).toHaveStyle('width: 56px; height:56px');
126
+ });
127
+ it('should open dropdown and render chilren', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
128
+ var mockAvatar, _render11, container;
129
+
130
+ return regeneratorRuntime.wrap(function _callee$(_context) {
131
+ while (1) {
132
+ switch (_context.prev = _context.next) {
133
+ case 0:
134
+ mockAvatar = /*#__PURE__*/_react.default.createElement(_.default, {
135
+ label: "B",
136
+ dropdown: true
137
+ }, /*#__PURE__*/_react.default.createElement(_list.default, null, /*#__PURE__*/_react.default.createElement(_list.ListItem, {
138
+ rightIconName: "exclamation",
139
+ text: "Icone na direita"
140
+ }), /*#__PURE__*/_react.default.createElement(_list.ListItem, {
141
+ rightIconName: "user",
142
+ text: "Icone na direita"
143
+ }), /*#__PURE__*/_react.default.createElement(_list.ListItem, {
144
+ text: "Itemlist sem \xEDcone"
145
+ }), /*#__PURE__*/_react.default.createElement(_list.ListItem, {
146
+ text: "Itemlist sem \xEDcone Disabled",
147
+ disabled: true
148
+ })));
149
+ _render11 = (0, _react2.render)(mockAvatar), container = _render11.container;
150
+
151
+ _react2.fireEvent.click(container.firstChild);
152
+
153
+ _context.next = 5;
154
+ return (0, _react2.waitFor)(function () {
155
+ return _react2.screen.getByTestId('dropdown-component');
156
+ });
157
+
158
+ case 5:
159
+ expect(container.firstChild).toHaveTextContent('B');
160
+ expect(_react2.screen.getByTestId('dropdown-component')).toBeInTheDocument();
161
+
162
+ case 7:
163
+ case "end":
164
+ return _context.stop();
165
+ }
166
+ }
167
+ }, _callee);
168
+ })));
169
+ it('should callback function onClick', function () {
170
+ var mockOnClick = jest.fn();
171
+
172
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
173
+ label: "B",
174
+ onClick: mockOnClick
175
+ })),
176
+ container = _render12.container;
177
+
178
+ _react2.fireEvent.click(container.firstChild);
179
+
180
+ expect(mockOnClick).toBeCalledTimes(1);
181
+ });
182
+ it('should use targetRef', function () {
183
+ var mockTargetRef = jest.fn();
184
+ (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
185
+ label: "B",
186
+ targetRef: mockTargetRef
187
+ }));
188
+ expect(mockTargetRef).toBeCalledTimes(1);
189
+ });
190
+ });