awing-library 2.1.121-beta → 2.1.122-beta
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/lib/ACM-AXN/AuthenticationProfile/Container.js +2 -2
- package/lib/ACM-AXN/AuthenticationProfile/Container.test.js +1 -1
- package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/CreateOrEdit.test.js +2 -2
- package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +1 -1
- package/lib/ACM-AXN/Holiday/Container.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Container.js +55 -0
- package/lib/ACM-AXN/Holiday/Container.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Container.test.js +227 -0
- package/lib/ACM-AXN/Holiday/Context.d.ts +3 -0
- package/lib/ACM-AXN/Holiday/Context.js +5 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.js +62 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/CreateOrEdit.test.js +255 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.js +107 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.test.js +181 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.d.ts +6 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.js +153 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Detail/Dates.test.js +220 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.d.ts +6 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.js +32 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.test.d.ts +1 -0
- package/lib/ACM-AXN/Holiday/Detail/Form.test.js +120 -0
- package/lib/ACM-AXN/Holiday/Detail.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Detail.js +29 -0
- package/lib/ACM-AXN/Holiday/FormHoliday.d.ts +9 -0
- package/lib/ACM-AXN/Holiday/FormHoliday.js +53 -0
- package/lib/ACM-AXN/Holiday/Hooks.d.ts +2 -0
- package/lib/ACM-AXN/Holiday/Hooks.js +12 -0
- package/lib/ACM-AXN/Holiday/Types.d.ts +73 -0
- package/lib/ACM-AXN/Holiday/Types.js +15 -0
- package/lib/ACM-AXN/Holiday/Utils.d.ts +13 -0
- package/lib/ACM-AXN/Holiday/Utils.js +34 -0
- package/lib/ACM-AXN/Holiday/index.d.ts +3 -0
- package/lib/ACM-AXN/Holiday/index.js +45 -0
- package/lib/ACM-AXN/Wizard/Container.js +1 -1
- package/lib/ACM-AXN/Wizard/Container.test.js +1 -1
- package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.js +1 -1
- package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.test.js +1 -1
- package/lib/ACM-AXN/Wizard/CreateOrEdit/index.test.js +2 -2
- package/lib/translate/en/translation.json +20 -0
- package/lib/translate/vi/translation.json +20 -0
- package/package.json +1 -1
|
@@ -7,11 +7,11 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
7
7
|
var react_1 = require("react");
|
|
8
8
|
var react_i18next_1 = require("react-i18next");
|
|
9
9
|
var Context_1 = require("../../Context");
|
|
10
|
+
var Router_1 = require("../../AWING/Router");
|
|
10
11
|
var Utils_1 = require("./Utils");
|
|
11
12
|
var Constant_1 = require("../Common/Constant");
|
|
12
|
-
var Router_1 = require("../../AWING/Router");
|
|
13
|
-
var Hooks_1 = __importDefault(require("./Hooks"));
|
|
14
13
|
var AWING_1 = require("../../AWING");
|
|
14
|
+
var Hooks_1 = __importDefault(require("./Hooks"));
|
|
15
15
|
function Container() {
|
|
16
16
|
var _a;
|
|
17
17
|
var navigate = (0, Router_1.useNavigate)();
|
|
@@ -111,7 +111,7 @@ jest.mock('./Hooks', function () { return ({
|
|
|
111
111
|
// Mock đa ngữ
|
|
112
112
|
jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
|
|
113
113
|
// Mock PageManagement
|
|
114
|
-
jest.mock('
|
|
114
|
+
jest.mock('AWING', function () { return ({
|
|
115
115
|
PageManagement: function (props) {
|
|
116
116
|
props.onChangeQueryInput({
|
|
117
117
|
searchString: '',
|
|
@@ -92,7 +92,7 @@ jest.mock('../Types', function () { return ({
|
|
|
92
92
|
IAuthenticationProfile: {},
|
|
93
93
|
}); });
|
|
94
94
|
// mock Router
|
|
95
|
-
jest.mock('
|
|
95
|
+
jest.mock('AWING/Router', function () { return (__assign(__assign({}, jest.requireActual('AWING/Router')), { useParams: jest.fn() })); });
|
|
96
96
|
// Mock đa ngữ
|
|
97
97
|
jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
|
|
98
98
|
// Mock Hooks
|
|
@@ -116,7 +116,7 @@ jest.mock('../Hooks', function () { return ({
|
|
|
116
116
|
}); },
|
|
117
117
|
}); });
|
|
118
118
|
// Mock Drawer
|
|
119
|
-
jest.mock('
|
|
119
|
+
jest.mock('Commons/Components/ClassicDrawer', function () { return function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { "data-testid": "title-drawer", children: id ? 'Common.Edit' : 'Common.Create' }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onSubmit", onClick: props.onSubmit, children: "submit" }), props.children] })); }; });
|
|
120
120
|
// mock BasicDataForm
|
|
121
121
|
jest.mock('../../../AWING', function () { return ({
|
|
122
122
|
BasicDataForm: function (props) {
|
|
@@ -18,8 +18,8 @@ var react_i18next_1 = require("react-i18next");
|
|
|
18
18
|
var Router_1 = require("../../../AWING/Router");
|
|
19
19
|
var Hooks_1 = __importDefault(require("../Hooks"));
|
|
20
20
|
var ClassicDrawer_1 = __importDefault(require("../../../Commons/Components/ClassicDrawer"));
|
|
21
|
-
var Utils_1 = require("../Utils");
|
|
22
21
|
var AWING_1 = require("../../../AWING");
|
|
22
|
+
var Utils_1 = require("../Utils");
|
|
23
23
|
var CreateOrEdit = function () {
|
|
24
24
|
var id = (0, Router_1.useParams)().id;
|
|
25
25
|
var t = (0, react_i18next_1.useTranslation)().t;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var react_i18next_1 = require("react-i18next");
|
|
9
|
+
var Visibility_1 = __importDefault(require("@mui/icons-material/Visibility"));
|
|
10
|
+
var Context_1 = require("../../Context");
|
|
11
|
+
var Hooks_1 = __importDefault(require("./Hooks"));
|
|
12
|
+
var Router_1 = require("../../AWING/Router");
|
|
13
|
+
var Constant_1 = require("../Common/Constant");
|
|
14
|
+
var PageManagement_1 = require("../../AWING/PageManagement");
|
|
15
|
+
var Container = function () {
|
|
16
|
+
var t = (0, react_i18next_1.useTranslation)().t;
|
|
17
|
+
var navigate = (0, Router_1.useNavigate)();
|
|
18
|
+
var service = (0, Hooks_1.default)().service;
|
|
19
|
+
var confirm = (0, Context_1.useAwing)().appHelper.confirm;
|
|
20
|
+
var _a = (0, react_1.useState)(false), loading = _a[0], setLoading = _a[1];
|
|
21
|
+
var _b = (0, react_1.useState)(), holidays = _b[0], setHolidays = _b[1];
|
|
22
|
+
var getHolidays = (0, react_1.useCallback)(function (queryParams) {
|
|
23
|
+
setLoading(true);
|
|
24
|
+
service
|
|
25
|
+
.holidaysPaging(queryParams.searchString, queryParams.pageIndex, queryParams.pageSize)
|
|
26
|
+
.then(setHolidays)
|
|
27
|
+
.finally(function () {
|
|
28
|
+
setLoading(false);
|
|
29
|
+
});
|
|
30
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
|
+
}, []);
|
|
32
|
+
return ((0, jsx_runtime_1.jsx)(PageManagement_1.PageManagement, { onRowClick: function (id) {
|
|
33
|
+
return navigate("".concat(Constant_1.Constants.HOLIDAY_EDIT, "/").concat(id));
|
|
34
|
+
}, title: t('Holiday.Title'), onChangeQueryInput: getHolidays, getRowId: function (obj) { return obj.id; }, columns: [
|
|
35
|
+
{
|
|
36
|
+
field: '#',
|
|
37
|
+
headerName: (0, jsx_runtime_1.jsx)("b", { children: "#" }),
|
|
38
|
+
width: 85,
|
|
39
|
+
valueGetter: function (_, idx, stt) { return stt; },
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
field: 'name',
|
|
43
|
+
headerName: (0, jsx_runtime_1.jsx)("b", { children: t('Common.Name') }),
|
|
44
|
+
},
|
|
45
|
+
], loading: loading, rows: (holidays === null || holidays === void 0 ? void 0 : holidays.items) || [], totalOfRows: holidays === null || holidays === void 0 ? void 0 : holidays.totalItemCount, onCreateButtonClick: function () { return navigate(Constant_1.Constants.HOLIDAY_CREATE); }, onDelete: service.holidaysDelete.bind(service), confirmDelete: confirm, rowActions: [
|
|
46
|
+
{
|
|
47
|
+
icon: (0, jsx_runtime_1.jsx)(Visibility_1.default, {}),
|
|
48
|
+
tooltipTitle: t('Common.Detail'),
|
|
49
|
+
action: function (id) {
|
|
50
|
+
navigate("".concat(Constant_1.Constants.HOLIDAY_DETAIL, "/").concat(id));
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
] }));
|
|
54
|
+
};
|
|
55
|
+
exports.default = Container;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
54
|
+
/* eslint-disable testing-library/no-wait-for-side-effects */
|
|
55
|
+
var react_1 = require("@testing-library/react");
|
|
56
|
+
var Router_1 = require("../../AWING/Router");
|
|
57
|
+
var Container_1 = __importDefault(require("./Container"));
|
|
58
|
+
var Constant_1 = require("../Common/Constant");
|
|
59
|
+
var id = '50';
|
|
60
|
+
var items = [
|
|
61
|
+
{
|
|
62
|
+
id: 11,
|
|
63
|
+
name: '1',
|
|
64
|
+
domainId: '100',
|
|
65
|
+
calendarType: 0,
|
|
66
|
+
recurrenceType: 0,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 12,
|
|
70
|
+
name: '2',
|
|
71
|
+
domainId: '100',
|
|
72
|
+
calendarType: 0,
|
|
73
|
+
recurrenceType: 0,
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
var clientMethod = {
|
|
77
|
+
holidaysPaging: function () {
|
|
78
|
+
return Promise.resolve({
|
|
79
|
+
items: items,
|
|
80
|
+
totalItemCount: items.length,
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
holidaysDelete: function (_id) { return Promise; },
|
|
84
|
+
};
|
|
85
|
+
// Mock service
|
|
86
|
+
jest.mock('./Hooks', function () { return ({
|
|
87
|
+
__esModule: true,
|
|
88
|
+
default: function () { return ({
|
|
89
|
+
service: {
|
|
90
|
+
holidaysPaging: jest.fn(function (_params) {
|
|
91
|
+
return Promise.resolve(clientMethod.holidaysPaging());
|
|
92
|
+
}),
|
|
93
|
+
holidaysDelete: jest.fn(function (_id) {
|
|
94
|
+
return Promise.resolve(clientMethod.holidaysDelete(_id));
|
|
95
|
+
}),
|
|
96
|
+
},
|
|
97
|
+
}); },
|
|
98
|
+
}); });
|
|
99
|
+
// Mock i18next
|
|
100
|
+
jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
|
|
101
|
+
// Mock PageManagement
|
|
102
|
+
jest.mock('AWING/PageManagement', function () { return ({
|
|
103
|
+
PageManagement: function (props) {
|
|
104
|
+
props.onChangeQueryInput({
|
|
105
|
+
searchString: '',
|
|
106
|
+
pageIndex: 0,
|
|
107
|
+
pageSize: 10,
|
|
108
|
+
});
|
|
109
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [props.columns
|
|
110
|
+
.filter(function (item) { return item.valueGetter; })
|
|
111
|
+
.map(function (getter, idx) { return ((0, jsx_runtime_1.jsx)("span", { children: getter.valueGetter(items[0], idx) }, idx)); }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "rowid", children: props.getRowId(items[0]) }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "CreateBtn", onClick: props.onCreateButtonClick, children: "CreateBtn" }), (0, jsx_runtime_1.jsx)("div", { "data-testid": "RowBtn", onClick: function () { return props.onRowClick(items[0].id); }, children: "RowBtn" }), (0, jsx_runtime_1.jsx)("button", { onClick: function () {
|
|
112
|
+
props.onChangeQueryInput({
|
|
113
|
+
pageIndex: 1,
|
|
114
|
+
pageSize: 10,
|
|
115
|
+
});
|
|
116
|
+
}, children: "ChangeInput" }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onDelete", onClick: function () {
|
|
117
|
+
props.onDelete('onDelete');
|
|
118
|
+
}, children: "Delete Btn" }), (0, jsx_runtime_1.jsx)("div", { children: props.rowActions.map(function (item, idx) { return ((0, jsx_runtime_1.jsx)("button", { "data-testid": item.tooltipTitle, onClick: function () {
|
|
119
|
+
item.action(id);
|
|
120
|
+
}, children: item.icon }, idx)); }) }), (0, jsx_runtime_1.jsx)("p", { children: JSON.stringify(props.rows) }), (0, jsx_runtime_1.jsxs)("span", { children: ["totalItemCount:", props.totalOfRows] })] }));
|
|
121
|
+
},
|
|
122
|
+
}); });
|
|
123
|
+
var renderUI = function () {
|
|
124
|
+
return (0, react_1.render)((0, jsx_runtime_1.jsx)(Router_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Container_1.default, {}) }));
|
|
125
|
+
};
|
|
126
|
+
describe('Holiday Container Component', function () {
|
|
127
|
+
it('renders without crashing', function () {
|
|
128
|
+
renderUI();
|
|
129
|
+
});
|
|
130
|
+
it('render state', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
131
|
+
return __generator(this, function (_a) {
|
|
132
|
+
switch (_a.label) {
|
|
133
|
+
case 0:
|
|
134
|
+
renderUI();
|
|
135
|
+
expect(react_1.screen.getByTestId('CreateBtn')).toBeInTheDocument();
|
|
136
|
+
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
|
137
|
+
expect(react_1.screen.getByText(JSON.stringify(items))).toBeInTheDocument();
|
|
138
|
+
})];
|
|
139
|
+
case 1:
|
|
140
|
+
_a.sent();
|
|
141
|
+
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
|
142
|
+
expect(react_1.screen.getByText("totalItemCount:".concat(items.length))).toBeInTheDocument();
|
|
143
|
+
})];
|
|
144
|
+
case 2:
|
|
145
|
+
_a.sent();
|
|
146
|
+
return [2 /*return*/];
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}); });
|
|
150
|
+
it('get rowid', function () {
|
|
151
|
+
renderUI();
|
|
152
|
+
expect(react_1.screen.getByText(items[0].id)).toBeInTheDocument();
|
|
153
|
+
});
|
|
154
|
+
it('get paging', function () {
|
|
155
|
+
var usersPagingSpy = jest.spyOn(clientMethod, 'holidaysPaging');
|
|
156
|
+
renderUI();
|
|
157
|
+
expect(usersPagingSpy).toBeCalled();
|
|
158
|
+
});
|
|
159
|
+
it('edit holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
160
|
+
return __generator(this, function (_a) {
|
|
161
|
+
switch (_a.label) {
|
|
162
|
+
case 0:
|
|
163
|
+
renderUI();
|
|
164
|
+
react_1.fireEvent.click(react_1.screen.getByTestId('RowBtn'));
|
|
165
|
+
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
|
166
|
+
return expect(window.location.href).toContain("localhost/".concat(Constant_1.Constants.HOLIDAY_EDIT, "/").concat(items[0].id));
|
|
167
|
+
})];
|
|
168
|
+
case 1:
|
|
169
|
+
_a.sent();
|
|
170
|
+
return [2 /*return*/];
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}); });
|
|
174
|
+
it('create holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
175
|
+
return __generator(this, function (_a) {
|
|
176
|
+
switch (_a.label) {
|
|
177
|
+
case 0:
|
|
178
|
+
renderUI();
|
|
179
|
+
react_1.fireEvent.click(react_1.screen.getByTestId('CreateBtn'));
|
|
180
|
+
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
|
181
|
+
return expect(window.location.href).toContain('localhost/HolidayCreate');
|
|
182
|
+
})];
|
|
183
|
+
case 1:
|
|
184
|
+
_a.sent();
|
|
185
|
+
return [2 /*return*/];
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
}); });
|
|
189
|
+
it('Delete holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
190
|
+
var holidaysDeleteSpy;
|
|
191
|
+
return __generator(this, function (_a) {
|
|
192
|
+
switch (_a.label) {
|
|
193
|
+
case 0:
|
|
194
|
+
holidaysDeleteSpy = jest.spyOn(clientMethod, 'holidaysDelete');
|
|
195
|
+
renderUI();
|
|
196
|
+
react_1.fireEvent.click(react_1.screen.getByTestId('onDelete'));
|
|
197
|
+
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
|
198
|
+
expect(holidaysDeleteSpy).toBeCalled();
|
|
199
|
+
})];
|
|
200
|
+
case 1:
|
|
201
|
+
_a.sent();
|
|
202
|
+
return [2 /*return*/];
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}); });
|
|
206
|
+
it('change QueryInput', function () {
|
|
207
|
+
var holidaysPagingSpy = jest.spyOn(clientMethod, 'holidaysPaging');
|
|
208
|
+
renderUI();
|
|
209
|
+
react_1.fireEvent.click(react_1.screen.getByText('ChangeInput'));
|
|
210
|
+
expect(holidaysPagingSpy).toBeCalled();
|
|
211
|
+
});
|
|
212
|
+
it('navigate to view detail holidays', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
213
|
+
return __generator(this, function (_a) {
|
|
214
|
+
switch (_a.label) {
|
|
215
|
+
case 0:
|
|
216
|
+
renderUI();
|
|
217
|
+
return [4 /*yield*/, (0, react_1.waitFor)(function () {
|
|
218
|
+
react_1.fireEvent.click(react_1.screen.getByTestId('Common.Detail'));
|
|
219
|
+
})];
|
|
220
|
+
case 1:
|
|
221
|
+
_a.sent();
|
|
222
|
+
expect(window.location.href).toContain("localhost/HolidayDetail/".concat(id));
|
|
223
|
+
return [2 /*return*/];
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}); });
|
|
227
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var react_i18next_1 = require("react-i18next");
|
|
9
|
+
var Hooks_1 = __importDefault(require("./Hooks"));
|
|
10
|
+
var FormHoliday_1 = __importDefault(require("./FormHoliday"));
|
|
11
|
+
var AWING_1 = require("../../AWING");
|
|
12
|
+
var Router_1 = require("../../AWING/Router");
|
|
13
|
+
var ClassicDrawer_1 = __importDefault(require("../../Commons/Components/ClassicDrawer"));
|
|
14
|
+
var CreateOrEdit = function () {
|
|
15
|
+
var t = (0, react_i18next_1.useTranslation)().t;
|
|
16
|
+
var id = (0, Router_1.useParams)().id;
|
|
17
|
+
var service = (0, Hooks_1.default)().service;
|
|
18
|
+
var _a = (0, react_1.useState)(), holidays = _a[0], setHolidays = _a[1];
|
|
19
|
+
var _b = (0, react_1.useState)(true), isLoading = _b[0], setLoading = _b[1];
|
|
20
|
+
var _c = (0, react_1.useState)(false), confirmExit = _c[0], setConfirmExit = _c[1];
|
|
21
|
+
var _d = (0, react_1.useState)(false), isLoadingSubmit = _d[0], setLoadingSubmit = _d[1];
|
|
22
|
+
(0, react_1.useEffect)(function () {
|
|
23
|
+
getHolidays();
|
|
24
|
+
}, []);
|
|
25
|
+
var handleUpdate = (0, react_1.useCallback)(function (value) {
|
|
26
|
+
if (!value)
|
|
27
|
+
return;
|
|
28
|
+
setHolidays(value);
|
|
29
|
+
setConfirmExit(true);
|
|
30
|
+
}, []);
|
|
31
|
+
var handleSubmit = (0, react_1.useCallback)(function () {
|
|
32
|
+
setLoadingSubmit(true);
|
|
33
|
+
if (!id) {
|
|
34
|
+
return service.holidaysPost(holidays).then(function () {
|
|
35
|
+
setLoadingSubmit(false);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return service.holidaysPut(Number(id), holidays).then(function () {
|
|
39
|
+
setLoadingSubmit(false);
|
|
40
|
+
});
|
|
41
|
+
}, [holidays]);
|
|
42
|
+
var getHolidays = function () {
|
|
43
|
+
if (id) {
|
|
44
|
+
service
|
|
45
|
+
.holidaysGet(Number(id))
|
|
46
|
+
.then(setHolidays)
|
|
47
|
+
.finally(function () {
|
|
48
|
+
setLoading(false);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
setLoading(false);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
var statusBtnSubmit = !holidays
|
|
56
|
+
? true
|
|
57
|
+
: Object.keys(holidays).length >= 3 && holidays.name
|
|
58
|
+
? false
|
|
59
|
+
: true;
|
|
60
|
+
return ((0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: !id ? t('Holiday.TitleCreate') : t('Holiday.TitleEdit'), onSubmit: handleSubmit, isLoadingButtonSubmit: isLoadingSubmit, disableButtonSubmit: statusBtnSubmit, confirmExit: confirmExit, childrenWrapperStyle: { padding: 0 }, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(FormHoliday_1.default, { holidays: holidays, onUpdate: handleUpdate })) }));
|
|
61
|
+
};
|
|
62
|
+
exports.default = CreateOrEdit;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|