linear-react-components-ui 0.4.75-beta.1 → 0.4.75-beta.13
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/.eslintrc.js +2 -5
- package/.vscode/settings.json +9 -9
- package/config/jest/cssTransform.js +14 -0
- package/config/jest/fileTransform.js +12 -0
- package/config/jest/storageMock.js +40 -0
- package/jest.config.js +18 -0
- package/lib/alerts/alert.spec.js +133 -0
- package/lib/assets/styles/popover.scss +9 -11
- package/lib/assets/styles/treeview.scss +0 -32
- package/lib/avatar/avatar.spec.js +190 -0
- package/lib/avatar/index.js +6 -2
- package/lib/badge/badge.spec.js +127 -0
- package/lib/badge/index.js +3 -5
- package/lib/buttons/DefaultButton.js +1 -7
- package/lib/buttons/buttons.spec.js +504 -0
- package/lib/calendar/calendar.spec.js +171 -0
- package/lib/checkbox/checkbox.spec.js +215 -0
- package/lib/checkbox/index.js +7 -20
- package/lib/dialog/Custom.js +7 -1
- package/lib/dialog/base/index.js +3 -0
- package/lib/dialog/dialog.spec.js +488 -0
- package/lib/dialog/form/index.js +7 -1
- package/lib/drawer/Drawer.js +3 -0
- package/lib/drawer/Drawer.spec.js +258 -0
- package/lib/drawer/Header.js +4 -1
- package/lib/dropdown/Popup.js +1 -0
- package/lib/dropdown/dropdown.spec.js +168 -0
- package/lib/dropdown/withDropdown.js +10 -4
- package/lib/fieldset/fieldset.spec.js +329 -0
- package/lib/form/form.spec.js +285 -0
- package/lib/gridlayout/GridRow.js +1 -1
- package/lib/gridlayout/gridLayout.spec.js +169 -0
- package/lib/icons/icons.spec.js +86 -0
- package/lib/icons/index.js +2 -0
- package/lib/inputs/base/InputTextBase.js +2 -0
- package/lib/inputs/base/base.spec.js +690 -0
- package/lib/inputs/color/color_input.spec.js +174 -0
- package/lib/inputs/color/index.js +2 -2
- package/lib/inputs/date/date.spec.js +344 -0
- package/lib/inputs/date/index.js +7 -6
- package/lib/inputs/mask/Cpf.js +9 -9
- package/lib/inputs/mask/input_mask.spec.js +590 -0
- package/lib/inputs/number/numberfield.spec.js +215 -0
- package/lib/inputs/search/search_input.spec.js +209 -0
- package/lib/inputs/select/select.spec.js +391 -0
- package/lib/inputs/text/textfield.spec.js +215 -0
- package/lib/inputs/textarea/textarea.spec.js +59 -0
- package/lib/labelMessages/index.js +3 -2
- package/lib/labelMessages/labelMessages.spec.js +176 -0
- package/lib/labels/label.spec.js +162 -0
- package/lib/list/Item.js +3 -3
- package/lib/list/index.js +17 -8
- package/lib/list/list.spec.js +609 -0
- package/lib/menus/float/float-menu.spec.js +221 -0
- package/lib/menus/sidenav/sidenav.spec.js +312 -0
- package/lib/noPermission/index.js +2 -1
- package/lib/panel/panel.spec.js +216 -0
- package/lib/permissionValidations.js +1 -1
- package/lib/popover/index.js +2 -1
- package/lib/popover/popover.spec.js +146 -0
- package/lib/progress/progress.spec.js +86 -0
- package/lib/radio/radio.spec.js +189 -0
- package/lib/spinner/SpinnerLoading.js +14 -24
- package/lib/spinner/spinner.spec.js +152 -0
- package/lib/split/Split.js +5 -1
- package/lib/split/split.spec.js +151 -0
- package/lib/table/Header.js +3 -1
- package/lib/table/Row.js +1 -4
- package/lib/table/index.js +1 -4
- package/lib/table/table.spec.js +352 -0
- package/lib/tabs/tabs.spec.js +346 -0
- package/lib/toolbar/toolbar.spec.js +394 -0
- package/lib/tooltip/index.js +1 -0
- package/lib/tooltip/tooltip.spec.js +203 -0
- package/lib/treeview/Node.js +13 -255
- package/lib/treeview/index.js +35 -366
- package/lib/treeview/treeview.spec.js +261 -0
- package/package.json +11 -2
- package/.DS_Store +0 -0
- package/lib/checkbox/Label.js +0 -37
package/.eslintrc.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
"extends": "airbnb",
|
|
3
3
|
"env": {
|
|
4
|
-
"browser": true
|
|
4
|
+
"browser": true,
|
|
5
|
+
"jest": true
|
|
5
6
|
},
|
|
6
7
|
"parser": "babel-eslint",
|
|
7
8
|
"rules": {
|
|
8
9
|
"prefer-destructuring": ["error", {"object": true, "array": false}],
|
|
9
|
-
// overried eslint-config-airbnb defaults
|
|
10
|
-
//react.js
|
|
11
10
|
'react/forbid-prop-types': ['error', { forbid: ['array'] }],
|
|
12
11
|
'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'],
|
|
13
12
|
'react/jsx-closing-bracket-location': ['error', 'after-props'],
|
|
14
13
|
'react/no-unused-prop-types': ['0'],
|
|
15
|
-
|
|
16
|
-
//react-a11y.js
|
|
17
14
|
"jsx-a11y/anchor-is-valid": [ "error", {
|
|
18
15
|
"components": [ "Link" ],
|
|
19
16
|
"specialLink": [ "hrefLeft", "hrefRight" ],
|
package/.vscode/settings.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files.exclude": {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
"__error": "Not found",
|
|
4
|
+
"config": false,
|
|
5
|
+
"coverage": true,
|
|
6
|
+
"node_modules": true,
|
|
7
|
+
"scripts": true,
|
|
8
|
+
"yarn.lock": true,
|
|
9
|
+
".eslintrc.js": true,
|
|
10
|
+
".gitignore": true,
|
|
11
|
+
}
|
|
12
12
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// This is a custom Jest transformer turning style imports into empty objects.
|
|
4
|
+
// http://facebook.github.io/jest/docs/en/webpack.html
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
process() {
|
|
8
|
+
return 'module.exports = {};';
|
|
9
|
+
},
|
|
10
|
+
getCacheKey() {
|
|
11
|
+
// The output is always the same.
|
|
12
|
+
return 'cssTransform';
|
|
13
|
+
},
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
// This is a custom Jest transformer turning file imports into filenames.
|
|
6
|
+
// http://facebook.github.io/jest/docs/en/webpack.html
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
process(src, filename) {
|
|
10
|
+
return `module.exports = ${JSON.stringify(path.basename(filename))};`;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const sessionStorageValueMock = '{"SG_CADASTROS":[{"nome":"Empresas","codigo":"SG_CADASTROS_EMPRESAS","permissoes":[{"codigo":"SG_CADASTROS_EMPRESAS_GRAVAR"},{"codigo":"SG_CADASTROS_EMPRESAS_CONSULTAR"},{"codigo":"SG_CADASTROS_EMPRESAS_EXCLUIR"},{"codigo":"SG_CADASTROS_EMPRESAS_RESTAURAR"},{"codigo":"SG_CADASTROS_EMPRESAS_ATIVAR"},{"codigo":"SG_CADASTROS_EMPRESAS_INATIVAR"}],"descricao":"Gestão das Empresas","itens":[]},{"nome":"Parceiros","codigo":"SG_CADASTROS_PARCEIROS","permissoes":[{"codigo":"SG_CADASTROS_PARCEIROS_GRAVAR"},{"codigo":"SG_CADASTROS_PARCEIROS_CONSULTAR"},{"codigo":"SG_CADASTROS_PARCEIROS_EXCLUIR"},{"codigo":"SG_CADASTROS_PARCEIROS_CONTATOS_GRAVAR"},{"codigo":"SG_CADASTROS_PARCEIROS_CONTATOS_CONSULTAR"},{"codigo":"SG_CADASTROS_PARCEIROS_RESTAURAR"},{"codigo":"SG_CADASTROS_PARCEIROS_ATIVAR"},{"codigo":"SG_CADASTROS_PARCEIROS_INATIVAR"}],"descricao":"Gestão de Pessoas que se relacionam com as Empresas","itens":[]},{"nome":"Produtos","codigo":"SG_CADASTROS_PRODUTOS","permissoes":[],"itens":[{"nome":"Produtos em Promoção","codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO","permissoes":[{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_CONSULTAR"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_VISUALIZAR"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_NAO_EXPIRADAS"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_UPLOAD_IMAGEM"},{"codigo":"SG_CADASTROS_PRODUTOS_EM_PROMOCAO_TROCAR_IMAGEM"}],"descricao":"Manutenção de Produtos em Promoção E-PROMO","itens":[]},{"nome":"Imagens dos Produtos","codigo":"SG_CADASTROS_PRODUTOS_IMAGENS","permissoes":[{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_CONSULTAR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_VISUALIZAR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_INCLUIR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_EDITAR"},{"codigo":"SG_CADASTROS_PRODUTOS_IMAGENS_EXCLUIR"}],"descricao":"Manutenção das imagens privadas dos produtos","itens":[]}]},{"nome":"Tabelas Auxiliares","codigo":"SG_CADASTROS_TABELAS_AUXILIARES","permissoes":[],"descricao":"Cadastros de Tabelas Auxliliares","itens":[{"nome":"Grupo vendedor","codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR","permissoes":[{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_INCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_ALTERAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_PESQUISAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_VISUALIZAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_EXCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_VENDEDOR_RESTAURAR"}],"descricao":"Gestão de grupos de vendedores","itens":[]},{"nome":"Cadastro de Setor Colaborador","codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR","permissoes":[{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_INCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_ALTERAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_PESQUISAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_VISUALIZAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_EXCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_SETOR_COLABORADOR_RESTAURAR"}],"descricao":"Permite o cadastro de setor colaborador","itens":[]},{"nome":"Grupos de empresas","codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA","permissoes":[{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_INCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_ALTERAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_PESQUISAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_VISUALIZAR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_EXCLUIR"},{"codigo":"SG_CADASTROS_TABELAS_AUXILIARES_GRUPO_EMPRESA_RESTAURAR"}],"descricao":"Gestão de grupos de empresas","itens":[]}]},{"nome":"Cadastro de turnos","codigo":"SG_CADASTROS_TURNO","permissoes":[{"codigo":"SG_CADASTROS_TURNO_INCLUIR"},{"codigo":"SG_CADASTROS_TURNO_ALTERAR"},{"codigo":"SG_CADASTROS_TURNO_PESQUISAR"},{"codigo":"SG_CADASTROS_TURNO_VISUALIZAR"},{"codigo":"SG_CADASTROS_TURNO_EXCLUIR"},{"codigo":"SG_CADASTROS_TURNO_RESTAURAR"}],"descricao":"Permite o cadastro de turnos","itens":[],"codigoPaiExibicao":"SG_ADMINISTRATIVO_TABELAS_SISTEMA"}]}';
|
|
2
|
+
|
|
3
|
+
const storageMock = () => {
|
|
4
|
+
const storage = {
|
|
5
|
+
permissionsStorage: sessionStorageValueMock,
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
setItem: (key, value) => {
|
|
10
|
+
storage[key] = value || '';
|
|
11
|
+
},
|
|
12
|
+
getItem: key => storage[key] || null,
|
|
13
|
+
removeItem: (key) => {
|
|
14
|
+
delete storage[key];
|
|
15
|
+
},
|
|
16
|
+
get length() {
|
|
17
|
+
return Object.keys(storage).length;
|
|
18
|
+
},
|
|
19
|
+
key: (i) => {
|
|
20
|
+
const keys = Object.keys(storage);
|
|
21
|
+
return keys[i] || null;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default storageMock;
|
|
27
|
+
|
|
28
|
+
export const permissionAttrMockAuthorized = onDenied => ({
|
|
29
|
+
module: 'SG_CADASTROS',
|
|
30
|
+
feature: 'SG_CADASTROS_EMPRESAS',
|
|
31
|
+
operation: 'SG_CADASTROS_EMPRESAS_GRAVAR',
|
|
32
|
+
onDenied,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export const permissionAttrMockUnauthorized = onDenied => ({
|
|
36
|
+
module: 'SG_COMPRAS_CADASTROS',
|
|
37
|
+
feature: 'SG_COMPRAS_CADASTROS_MOTIVO_BAIXAS_PEDIDOS_COMPRAS',
|
|
38
|
+
operation: 'SG_COMPRAS_CADASTROS_MOTIVO_BAIXAS_PEDIDOS_COMPRAS_INCLUIR',
|
|
39
|
+
onDenied,
|
|
40
|
+
});
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
roots: ['<rootDir>'],
|
|
3
|
+
transform: {
|
|
4
|
+
'\\.(js|jsx)?$': 'babel-jest',
|
|
5
|
+
},
|
|
6
|
+
testMatch: [
|
|
7
|
+
'<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}',
|
|
8
|
+
],
|
|
9
|
+
moduleFileExtensions: ['js', 'jsx', 'json', 'node'],
|
|
10
|
+
testPathIgnorePatterns: ['/node_modules/', '/public/'],
|
|
11
|
+
setupFilesAfterEnv: [
|
|
12
|
+
'@testing-library/jest-dom/extend-expect',
|
|
13
|
+
],
|
|
14
|
+
moduleNameMapper: {
|
|
15
|
+
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/config/jest/fileTransform.js',
|
|
16
|
+
'.+\\.(css|scss)$': 'identity-obj-proxy',
|
|
17
|
+
},
|
|
18
|
+
};
|
|
@@ -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
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.popover-component {
|
|
2
2
|
> .buttonicon {
|
|
3
|
-
width: auto!important;
|
|
4
|
-
height: auto!important;
|
|
3
|
+
width: auto !important;
|
|
4
|
+
height: auto !important;
|
|
5
5
|
margin-top: 0 !important;
|
|
6
6
|
}
|
|
7
7
|
&:hover {
|
|
@@ -17,15 +17,13 @@
|
|
|
17
17
|
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
|
18
18
|
max-width: 350px;
|
|
19
19
|
padding: 10px 12px;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
margin: 10px 0 5px;
|
|
28
|
-
}
|
|
20
|
+
.title:first-child {
|
|
21
|
+
margin-top: 0px;
|
|
22
|
+
}
|
|
23
|
+
> .title {
|
|
24
|
+
font-weight: bold;
|
|
25
|
+
width: 100%;
|
|
26
|
+
margin: 10px 0 5px;
|
|
29
27
|
}
|
|
30
28
|
&.-dark {
|
|
31
29
|
background: #777;
|
|
@@ -42,25 +42,6 @@
|
|
|
42
42
|
animation: revealelement 0.3s forwards ease-in-out;
|
|
43
43
|
> .label {
|
|
44
44
|
width: auto;
|
|
45
|
-
display: flex;
|
|
46
|
-
justify-content: flex-start;
|
|
47
|
-
align-items: center;
|
|
48
|
-
>.node-menu {
|
|
49
|
-
animation: revealelement 0.3s forwards ease-in-out;
|
|
50
|
-
margin-left: 10px;
|
|
51
|
-
}
|
|
52
|
-
>.node-rightelements {
|
|
53
|
-
animation: revealelement 0.3s forwards ease-in-out;
|
|
54
|
-
display: flex;
|
|
55
|
-
justify-content: flex-start;
|
|
56
|
-
align-items: center;
|
|
57
|
-
}
|
|
58
|
-
>.node-toolbarelements {
|
|
59
|
-
animation: revealelement 0.3s forwards ease-in-out;
|
|
60
|
-
width: auto;
|
|
61
|
-
height: 100%;
|
|
62
|
-
margin-left: 10px;
|
|
63
|
-
}
|
|
64
45
|
&:hover {
|
|
65
46
|
background-color: rgb(209, 209, 209);
|
|
66
47
|
}
|
|
@@ -72,16 +53,3 @@
|
|
|
72
53
|
float: left;
|
|
73
54
|
}
|
|
74
55
|
}
|
|
75
|
-
|
|
76
|
-
.nodelist > .treeviewitem > .label > .node-rightelements > .element,
|
|
77
|
-
.treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-rightelements > .element {
|
|
78
|
-
margin-left: 10px;
|
|
79
|
-
display: flex;
|
|
80
|
-
align-items: center;
|
|
81
|
-
height: 100%;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.nodelist > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar,
|
|
85
|
-
.treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar {
|
|
86
|
-
border: none;
|
|
87
|
-
}
|
|
@@ -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
|
+
});
|
package/lib/avatar/index.js
CHANGED
|
@@ -54,6 +54,7 @@ var Avatar = function Avatar(props) {
|
|
|
54
54
|
iconName = props.iconName,
|
|
55
55
|
icon = props.icon,
|
|
56
56
|
src = props.src,
|
|
57
|
+
srcAlt = props.srcAlt,
|
|
57
58
|
customClass = props.customClass,
|
|
58
59
|
targetRef = props.targetRef,
|
|
59
60
|
label = props.label,
|
|
@@ -64,6 +65,7 @@ var Avatar = function Avatar(props) {
|
|
|
64
65
|
id = props.id;
|
|
65
66
|
var dropdownRef = (0, _react.useRef)(null);
|
|
66
67
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
68
|
+
"data-testid": "avatar",
|
|
67
69
|
id: id,
|
|
68
70
|
onKeyPress: null,
|
|
69
71
|
role: "button",
|
|
@@ -83,14 +85,14 @@ var Avatar = function Avatar(props) {
|
|
|
83
85
|
backgroundColor: "".concat(color),
|
|
84
86
|
cursor: "".concat(dropdown ? 'pointer' : 'normal')
|
|
85
87
|
}, style)
|
|
86
|
-
}, (iconName || icon) && getIcon(iconName, icon), src && /*#__PURE__*/_react["default"].createElement("img", {
|
|
88
|
+
}, (iconName || icon) && !src && getIcon(iconName, icon), src && /*#__PURE__*/_react["default"].createElement("img", {
|
|
87
89
|
className: "imgavatar",
|
|
88
90
|
style: {
|
|
89
91
|
width: "".concat(width),
|
|
90
92
|
height: "".concat(height)
|
|
91
93
|
},
|
|
92
94
|
src: src,
|
|
93
|
-
alt:
|
|
95
|
+
alt: srcAlt
|
|
94
96
|
}), label), dropdown && getDropdownPopup(dropdownRef.current));
|
|
95
97
|
};
|
|
96
98
|
|
|
@@ -103,6 +105,7 @@ Avatar.propTypes = {
|
|
|
103
105
|
iconName: _propTypes["default"].string,
|
|
104
106
|
icon: _propTypes["default"].instanceOf(Object),
|
|
105
107
|
src: _propTypes["default"].string,
|
|
108
|
+
srcAlt: _propTypes["default"].string,
|
|
106
109
|
children: _propTypes["default"].element,
|
|
107
110
|
square: _propTypes["default"].bool,
|
|
108
111
|
customClass: _propTypes["default"].string,
|
|
@@ -124,6 +127,7 @@ Avatar.defaultProps = {
|
|
|
124
127
|
iconName: '',
|
|
125
128
|
icon: null,
|
|
126
129
|
src: '',
|
|
130
|
+
srcAlt: 'Avatar',
|
|
127
131
|
customClass: '',
|
|
128
132
|
children: null,
|
|
129
133
|
square: false,
|