@truedat/core 7.5.9 → 7.5.11
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/package.json +36 -68
- package/src/__tests__/routesTree.spec.js +108 -0
- package/src/api/queries.js +10 -0
- package/src/api.js +3 -0
- package/src/components/AddMemberForm.js +10 -10
- package/src/components/AddResourceMember.js +0 -2
- package/src/components/AdminMenu.js +0 -1
- package/src/components/AiMenu.js +0 -1
- package/src/components/Alert.js +1 -1
- package/src/components/AlertExporter.js +0 -1
- package/src/components/ArrayDecorator.js +0 -1
- package/src/components/Authorized.js +2 -2
- package/src/components/AvailableFilters.js +1 -2
- package/src/components/CSVFileModal.js +1 -1
- package/src/components/CardGroupsAccordion.js +1 -1
- package/src/components/CatalogMenu.js +1 -2
- package/src/components/CommentRow.js +7 -8
- package/src/components/Comments.js +3 -4
- package/src/components/CommentsForm.js +2 -2
- package/src/components/ConfirmModal.js +0 -1
- package/src/components/CursorPagination.js +1 -2
- package/src/components/DashboardMenu.js +0 -1
- package/src/components/Date.js +0 -1
- package/src/components/DateFilter.js +1 -1
- package/src/components/DateRangeFilter.js +1 -1
- package/src/components/DateTime.js +0 -1
- package/src/components/DescriptionInput.js +1 -1
- package/src/components/DomainSelector.js +2 -3
- package/src/components/DropdownMenuItem.js +0 -1
- package/src/components/ErrorBoundary.js +8 -7
- package/src/components/FieldLabel.js +0 -1
- package/src/components/FilterDropdown.js +3 -3
- package/src/components/FilterItem.js +0 -1
- package/src/components/FilterMultilevelDropdown.js +1 -1
- package/src/components/GenericCrumbs.js +3 -4
- package/src/components/GlossaryMenu.js +24 -31
- package/src/components/GrantMenu.js +0 -1
- package/src/components/Graph.js +101 -0
- package/src/components/GroupActions.js +15 -15
- package/src/components/Hierarchy.js +7 -10
- package/src/components/HierarchyFilterDropdown.js +1 -2
- package/src/components/HierarchyNodeFinder.js +4 -4
- package/src/components/HierarchySelector.js +1 -2
- package/src/components/HistoryBackButton.js +6 -6
- package/src/components/IngestMenu.js +0 -1
- package/src/components/LanguagesTabs.js +4 -4
- package/src/components/LineageMenu.js +0 -1
- package/src/components/Loading.js +1 -2
- package/src/components/MembersMenu.js +0 -1
- package/src/components/ModalSaveFilter.js +1 -1
- package/src/components/NodeOpenActions.js +0 -1
- package/src/components/OptionGroup.js +1 -2
- package/src/components/OptionModal.js +0 -1
- package/src/components/Pagination.js +0 -1
- package/src/components/QualityMenu.js +0 -1
- package/src/components/QxMenu.js +0 -1
- package/src/components/Redirector.js +3 -3
- package/src/components/ResourceMember.js +1 -2
- package/src/components/ResourceMembers.js +3 -3
- package/src/components/ResourceMembersActions.js +1 -2
- package/src/components/RichTextEditor.js +7 -8
- package/src/components/RouteListener.js +11 -32
- package/src/components/SafeLink.js +0 -1
- package/src/components/ScrollToTop.js +13 -16
- package/src/components/SearchFilterDropdown.js +1 -1
- package/src/components/SearchInput.js +3 -3
- package/src/components/SearchMenu.js +0 -1
- package/src/components/SelectedFilters.js +1 -2
- package/src/components/SideMenu.js +0 -1
- package/src/components/SidebarToggle.js +2 -2
- package/src/components/StructureFilterItem.js +0 -1
- package/src/components/Submenu.js +8 -7
- package/src/components/SystemsLoader.js +27 -0
- package/src/components/TaxonomyMenu.js +0 -1
- package/src/components/TemplateSelector.js +1 -1
- package/src/components/TemplatesLoader.js +24 -0
- package/src/components/TreeSelector.js +4 -4
- package/src/components/Unauthorized.js +0 -1
- package/src/components/UploadModal.js +152 -176
- package/src/components/UserFilter.js +0 -2
- package/src/components/UserFilters.js +0 -2
- package/src/components/__tests__/AddMemberForm.spec.js +26 -38
- package/src/components/__tests__/AddResourceMember.spec.js +0 -1
- package/src/components/__tests__/AdminMenu.spec.js +0 -1
- package/src/components/__tests__/Alert.spec.js +17 -21
- package/src/components/__tests__/AvailableFilters.spec.js +19 -14
- package/src/components/__tests__/CardGroupsAccordion.spec.js +24 -15
- package/src/components/__tests__/CatalogMenu.spec.js +27 -45
- package/src/components/__tests__/CommentsLoader.spec.js +17 -14
- package/src/components/__tests__/CursorPagination.spec.js +0 -1
- package/src/components/__tests__/DashboardMenu.spec.js +0 -1
- package/src/components/__tests__/DateFilter.spec.js +6 -28
- package/src/components/__tests__/DateTime.spec.js +0 -1
- package/src/components/__tests__/DomainSelector.spec.js +4 -4
- package/src/components/__tests__/DropdownMenuItem.spec.js +0 -1
- package/src/components/__tests__/FilterDropdown.spec.js +28 -27
- package/src/components/__tests__/FilterItem.spec.js +19 -20
- package/src/components/__tests__/FilterMultilevelDropdown.spec.js +16 -16
- package/src/components/__tests__/FiltersLoader.spec.js +25 -20
- package/src/components/__tests__/GenericCrumbs.spec.js +0 -1
- package/src/components/__tests__/GlossaryMenu.spec.js +0 -1
- package/src/components/__tests__/GrantMenu.spec.js +0 -1
- package/src/components/__tests__/GroupActions.spec.js +0 -1
- package/src/components/__tests__/Hierarchy.spec.js +0 -1
- package/src/components/__tests__/HierarchyFilterDropdown.spec.js +16 -14
- package/src/components/__tests__/HierarchyNodeFinder.spec.js +0 -1
- package/src/components/__tests__/HierarchySelector.spec.js +28 -35
- package/src/components/__tests__/HistoryBackButton.spec.js +23 -23
- package/src/components/__tests__/IngestMenu.spec.js +0 -1
- package/src/components/__tests__/LineageMenu.spec.js +0 -1
- package/src/components/__tests__/Loading.spec.js +4 -5
- package/src/components/__tests__/MembersMenu.spec.js +0 -1
- package/src/components/__tests__/ModalSaveFilter.spec.js +0 -1
- package/src/components/__tests__/OptionGroup.spec.js +5 -7
- package/src/components/__tests__/Pagination.spec.js +22 -16
- package/src/components/__tests__/QualityMenu.spec.js +0 -1
- package/src/components/__tests__/Redirector.spec.js +5 -10
- package/src/components/__tests__/ResourceMembers.spec.js +36 -27
- package/src/components/__tests__/ResourceMembersAction.spec.js +1 -2
- package/src/components/__tests__/RouteListener.spec.js +25 -26
- package/src/components/__tests__/SafeLink.spec.js +0 -1
- package/src/components/__tests__/SearchDateFilter.spec.js +0 -1
- package/src/components/__tests__/SearchFilterDropdown.spec.js +32 -24
- package/src/components/__tests__/SearchInput.spec.js +5 -5
- package/src/components/__tests__/SearchMenu.spec.js +0 -1
- package/src/components/__tests__/SelectedFilters.spec.js +50 -47
- package/src/components/__tests__/SideMenu.spec.js +5 -8
- package/src/components/__tests__/StructureFilterItem.spec.js +13 -11
- package/src/components/__tests__/Submenu.spec.js +0 -1
- package/src/components/__tests__/SystemsLoader.spec.js +40 -0
- package/src/components/__tests__/TaxonomyMenu.spec.js +0 -1
- package/src/components/__tests__/TemplateSelector.spec.js +27 -29
- package/src/components/__tests__/TemplatesLoader.spec.js +30 -0
- package/src/components/__tests__/TreeSelector.spec.js +110 -83
- package/src/components/__tests__/UploadModal.spec.js +171 -0
- package/src/components/__tests__/UserFilters.spec.js +44 -37
- package/src/components/__tests__/__snapshots__/AddMemberForm.spec.js.snap +1 -0
- package/src/components/__tests__/__snapshots__/AddResourceMember.spec.js.snap +10 -9
- package/src/components/__tests__/__snapshots__/AdminMenu.spec.js.snap +22 -11
- package/src/components/__tests__/__snapshots__/Alert.spec.js.snap +29 -17
- package/src/components/__tests__/__snapshots__/AvailableFilters.spec.js.snap +1 -1
- package/src/components/__tests__/__snapshots__/CatalogMenu.spec.js.snap +18 -8
- package/src/components/__tests__/__snapshots__/CursorPagination.spec.js.snap +3 -0
- package/src/components/__tests__/__snapshots__/DateFilter.spec.js.snap +165 -107
- package/src/components/__tests__/__snapshots__/DomainSelector.spec.js.snap +1 -1
- package/src/components/__tests__/__snapshots__/FilterItem.spec.js.snap +13 -20
- package/src/components/__tests__/__snapshots__/GlossaryMenu.spec.js.snap +8 -0
- package/src/components/__tests__/__snapshots__/GrantMenu.spec.js.snap +14 -7
- package/src/components/__tests__/__snapshots__/GroupActions.spec.js.snap +0 -1
- package/src/components/__tests__/__snapshots__/Hierarchy.spec.js.snap +0 -1
- package/src/components/__tests__/__snapshots__/HierarchySelector.spec.js.snap +1 -1
- package/src/components/__tests__/__snapshots__/HistoryBackButton.spec.js.snap +10 -20
- package/src/components/__tests__/__snapshots__/IngestMenu.spec.js.snap +3 -1
- package/src/components/__tests__/__snapshots__/LineageMenu.spec.js.snap +6 -3
- package/src/components/__tests__/__snapshots__/Loading.spec.js.snap +5 -4
- package/src/components/__tests__/__snapshots__/MembersMenu.spec.js.snap +6 -3
- package/src/components/__tests__/__snapshots__/OptionGroup.spec.js.snap +38 -28
- package/src/components/__tests__/__snapshots__/Pagination.spec.js.snap +213 -64
- package/src/components/__tests__/__snapshots__/QualityMenu.spec.js.snap +14 -8
- package/src/components/__tests__/__snapshots__/ResourceMembers.spec.js.snap +1 -0
- package/src/components/__tests__/__snapshots__/ResourceMembersAction.spec.js.snap +2 -1
- package/src/components/__tests__/__snapshots__/RouteListener.spec.js.snap +1 -1
- package/src/components/__tests__/__snapshots__/SearchInput.spec.js.snap +10 -12
- package/src/components/__tests__/__snapshots__/SearchMenu.spec.js.snap +3 -1
- package/src/components/__tests__/__snapshots__/SelectedFilters.spec.js.snap +8 -8
- package/src/components/__tests__/__snapshots__/SideMenu.spec.js.snap +112 -50
- package/src/components/__tests__/__snapshots__/Submenu.spec.js.snap +3 -0
- package/src/components/__tests__/__snapshots__/SystemsLoader.spec.js.snap +3 -0
- package/src/components/__tests__/__snapshots__/TaxonomyMenu.spec.js.snap +3 -1
- package/src/components/__tests__/__snapshots__/TemplateSelector.spec.js.snap +7 -7
- package/src/components/common/SearchContextWrapper.js +1 -4
- package/src/components/index.js +4 -2
- package/src/hooks/__mocks__/useAuthorized.js +2 -0
- package/src/hooks/__mocks__/useUserFilters.js +17 -0
- package/src/hooks/__tests__/{useAclEntries.spec.js → useAclEntries.spec.js.disabled} +1 -1
- package/src/hooks/__tests__/useAuthorized.spec.js +1 -1
- package/src/hooks/useAclEntries.js +6 -3
- package/src/hooks/useActiveRoute.js +3 -3
- package/src/hooks/useActiveRoutes.js +4 -4
- package/src/hooks/useHierarchies.js +112 -0
- package/src/hooks/useLocales.js +1 -1
- package/src/hooks/useMessages.js +1 -1
- package/src/hooks/usePath.js +4 -4
- package/src/hooks/useUserFilters.js +1 -1
- package/src/i18n/components/EditableCell.js +1 -1
- package/src/i18n/components/I18nRoutes.js +11 -16
- package/src/i18n/components/LangProvider.js +56 -101
- package/src/i18n/components/LangProviderWrapper.js +26 -33
- package/src/i18n/components/Languages.js +8 -7
- package/src/i18n/components/MessageForm.js +9 -23
- package/src/i18n/components/Messages.js +5 -4
- package/src/i18n/components/MessagesTable.js +0 -1
- package/src/i18n/components/NewMessage.js +5 -4
- package/src/i18n/components/__tests__/EditableCell.spec.js +18 -20
- package/src/i18n/components/__tests__/I18nRoutes.spec.js +39 -5
- package/src/i18n/components/__tests__/MessageForm.spec.js +0 -1
- package/src/i18n/components/__tests__/Messages.spec.js +9 -21
- package/src/i18n/components/__tests__/NewMessage.spec.js +0 -1
- package/src/i18n/components/__tests__/__snapshots__/I18nRoutes.spec.js.snap +25 -1
- package/src/i18n/components/__tests__/__snapshots__/MessageForm.spec.js.snap +1 -0
- package/src/i18n/components/__tests__/__snapshots__/Messages.spec.js.snap +5 -13
- package/src/i18n/components/__tests__/__snapshots__/NewMessage.spec.js.snap +2 -0
- package/src/reducers/__tests__/comments.spec.js +9 -6
- package/src/reducers/__tests__/commentsResource.spec.js +5 -2
- package/src/reducers/__tests__/coreMessage.spec.js +1 -1
- package/src/reducers/__tests__/dashboardDomains.spec.js +5 -5
- package/src/reducers/__tests__/systems.spec.js +42 -0
- package/src/reducers/__tests__/systemsLoading.spec.js +22 -0
- package/src/reducers/index.js +5 -1
- package/src/reducers/systems.js +19 -0
- package/src/reducers/systemsLoading.js +14 -0
- package/src/router/Loader.js +10 -0
- package/src/router/ProtectedRoute.js +11 -0
- package/src/router/Unauthorized.js +16 -0
- package/src/router/__tests__/ProtectedRoute.spec.js +49 -0
- package/src/router/__tests__/Unauthorized.spec.js +15 -0
- package/src/router/__tests__/__snapshots__/ProtectedRoute.spec.js.snap +44 -0
- package/src/router/__tests__/__snapshots__/Unauthorized.spec.js.snap +26 -0
- package/src/router/index.js +5 -0
- package/src/routes.js +7 -7
- package/src/routesTree.js +93 -0
- package/src/routines.js +8 -0
- package/src/sagas/__tests__/addComment.spec.js +3 -5
- package/src/sagas/__tests__/fetchComments.spec.js +1 -1
- package/src/sagas/__tests__/fetchSystems.spec.js +69 -0
- package/src/sagas/fetchSystems.js +25 -0
- package/src/sagas/index.js +3 -0
- package/src/search/FilterDropdown.js +0 -1
- package/src/search/FilterItem.js +0 -1
- package/src/search/FilterMultilevelDropdown.js +1 -1
- package/src/search/FilterQueryDropdown.js +38 -42
- package/src/search/HierarchyFilterDropdown.js +3 -4
- package/src/search/ModalSaveFilter.js +1 -1
- package/src/search/Pagination.js +0 -1
- package/src/search/SearchContext.js +9 -11
- package/src/search/SearchDateFilter.js +0 -1
- package/src/search/SearchFilters.js +1 -2
- package/src/search/SearchSelectedFilters.js +4 -4
- package/src/search/SearchWidget.js +0 -4
- package/src/search/UserFilter.js +0 -2
- package/src/search/UserFilters.js +4 -3
- package/src/search/__tests__/FilterDropdown.spec.js +54 -51
- package/src/search/__tests__/FilterItem.spec.js +20 -15
- package/src/search/__tests__/FilterQueryDropdown.spec.js +106 -84
- package/src/search/__tests__/ModalSaveFilter.spec.js +4 -5
- package/src/search/__tests__/SearchContext.spec.js +3 -4
- package/src/search/__tests__/SearchWidget.spec.js +0 -1
- package/src/selectors/__tests__/getConceptSubscope.spec.js +37 -0
- package/src/selectors/__tests__/getDashboardConfig.spec.js +9 -9
- package/src/selectors/__tests__/getMessage.spec.js +1 -1
- package/src/selectors/__tests__/getSidemenuGlossarySubscopes.spec.js +17 -0
- package/src/selectors/__tests__/makeActiveFiltersSelector.spec.js +2 -2
- package/src/selectors/__tests__/makeSearchQuerySelector.spec.js +1 -1
- package/src/selectors/__tests__/makeTagOptionsSelector.spec.js +6 -6
- package/src/selectors/getConceptSubscope.js +19 -0
- package/src/selectors/getMessage.js +2 -2
- package/src/selectors/getRecipients.js +34 -0
- package/src/selectors/getSidemenuGlossarySubscopes.js +8 -0
- package/src/selectors/index.js +5 -0
- package/src/selectors/makeActiveFiltersSelector.js +2 -6
- package/src/selectors/makeSearchQuerySelector.js +4 -11
- package/src/selectors/makeTagOptionsSelector.js +4 -8
- package/src/selectors/subscopedTemplates.js +16 -0
- package/src/selectors/taxonomy.js +170 -0
- package/src/services/__tests__/columnDecorator.spec.js +1 -1
- package/src/services/__tests__/dateFilterFormatter.spec.js +2 -2
- package/src/services/__tests__/fieldType.spec.js +2 -2
- package/src/services/__tests__/filters.spec.js +1 -1
- package/src/services/__tests__/message.spec.js +2 -2
- package/src/services/__tests__/operators.spec.js +5 -5
- package/src/services/__tests__/sort.spec.js +8 -8
- package/src/services/__tests__/storage.spec.js +17 -0
- package/src/services/arrays.js +16 -14
- package/src/services/columnDecoratorComponent.js +2 -2
- package/src/services/columnDecorators.js +0 -1
- package/src/services/fieldType.js +8 -8
- package/src/services/filters.js +5 -5
- package/src/services/message.js +1 -4
- package/src/services/operators.js +1 -1
|
@@ -1,38 +1,37 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { render } from "@truedat/test/render";
|
|
2
|
+
import RouteListener from "../RouteListener";
|
|
3
|
+
import * as routines from "../../routines";
|
|
4
|
+
|
|
5
|
+
jest.mock("../../routines", () => ({
|
|
6
|
+
dismissAlert: jest.fn(() => ({ type: "DISMISS_ALERT" })),
|
|
7
|
+
}));
|
|
4
8
|
|
|
5
9
|
describe("<RouteListener />", () => {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
const mockDispatch = jest.fn();
|
|
11
|
+
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
jest.clearAllMocks();
|
|
14
|
+
});
|
|
10
15
|
|
|
11
16
|
it("matches the latest snapshot", () => {
|
|
12
|
-
const
|
|
13
|
-
expect(
|
|
17
|
+
const { container } = render(<RouteListener />);
|
|
18
|
+
expect(container).toMatchSnapshot();
|
|
14
19
|
});
|
|
15
20
|
|
|
16
21
|
it("when changing location with message will call dismissAlert", () => {
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
wrapper.setProps({
|
|
22
|
-
message: { not: "empty" },
|
|
23
|
-
location: { pathname: "/different" },
|
|
22
|
+
// Initial render with a message
|
|
23
|
+
const { rerender } = render(<RouteListener />, {
|
|
24
|
+
routes: ["/initial"],
|
|
25
|
+
dispatch: mockDispatch,
|
|
24
26
|
});
|
|
25
|
-
expect(dismissAlert.mock.calls.length).toBe(1);
|
|
26
|
-
});
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
wrapper.setProps({
|
|
34
|
-
location: { pathname: "/different" },
|
|
28
|
+
// Change location
|
|
29
|
+
rerender(<RouteListener />, {
|
|
30
|
+
routes: ["/initial", "/different"],
|
|
31
|
+
routeIndex: 1,
|
|
32
|
+
dispatch: mockDispatch,
|
|
35
33
|
});
|
|
36
|
-
|
|
34
|
+
|
|
35
|
+
expect(mockDispatch).toHaveBeenCalledWith(routines.dismissAlert());
|
|
37
36
|
});
|
|
38
37
|
});
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/* eslint-disable react/prop-types */
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { render } from "@truedat/test/render";
|
|
4
|
-
import { within, waitFor } from "@testing-library/react";
|
|
5
|
-
import userEvent from "@testing-library/user-event";
|
|
6
|
-
|
|
7
2
|
import { Icon, Dropdown, Segment } from "semantic-ui-react";
|
|
3
|
+
import userEvent from "@testing-library/user-event";
|
|
4
|
+
import { within, waitFor } from "@testing-library/react";
|
|
5
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
8
6
|
|
|
9
7
|
import SearchFilterDropdown from "../SearchFilterDropdown";
|
|
10
8
|
|
|
11
|
-
const DummyLoader = () => <div
|
|
9
|
+
const DummyLoader = () => <div />;
|
|
12
10
|
const DummyFilerItem = ({ active, toggleFilterValue, option }) => (
|
|
13
11
|
<Dropdown.Item onClick={() => toggleFilterValue(option)} active={active}>
|
|
14
12
|
<Segment vertical>
|
|
@@ -51,44 +49,50 @@ const props = {
|
|
|
51
49
|
};
|
|
52
50
|
|
|
53
51
|
describe("<SearchFilterDropDown/>", () => {
|
|
54
|
-
it("matches the latest snapshot unfolded", () => {
|
|
55
|
-
const
|
|
56
|
-
|
|
52
|
+
it("matches the latest snapshot unfolded", async () => {
|
|
53
|
+
const rendered = render(<SearchFilterDropdown {...props} />);
|
|
54
|
+
await waitForLoad(rendered);
|
|
55
|
+
expect(rendered.container).toMatchSnapshot();
|
|
57
56
|
});
|
|
58
57
|
|
|
59
|
-
it("matches the latest snapshot folded", () => {
|
|
58
|
+
it("matches the latest snapshot folded", async () => {
|
|
60
59
|
const customProps = {
|
|
61
60
|
...props,
|
|
62
61
|
open: false,
|
|
63
62
|
};
|
|
64
|
-
const
|
|
65
|
-
|
|
63
|
+
const rendered = render(<SearchFilterDropdown {...customProps} />);
|
|
64
|
+
await waitForLoad(rendered);
|
|
65
|
+
expect(rendered.container).toMatchSnapshot();
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
it("check option check it correctly", () => {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
it("check option check it correctly", async () => {
|
|
69
|
+
const rendered = render(<SearchFilterDropdown {...props} />);
|
|
70
|
+
await waitForLoad(rendered);
|
|
71
|
+
|
|
72
|
+
const user = userEvent.setup({ delay: null });
|
|
72
73
|
|
|
73
74
|
expect(props.toggleFilterValue).toBeCalledTimes(0);
|
|
74
|
-
|
|
75
|
+
await user.click(rendered.getByRole("option", { name: /baz_option/i }));
|
|
75
76
|
expect(props.toggleFilterValue).toBeCalledWith({
|
|
76
77
|
value: 3,
|
|
77
78
|
filter: "foo_filter",
|
|
78
79
|
});
|
|
79
80
|
|
|
80
81
|
expect(
|
|
81
|
-
within(getAllByRole("option")[0]).queryByText(
|
|
82
|
+
within(rendered.getAllByRole("option")[0]).queryByText(/baz_option/i)
|
|
82
83
|
).not.toBeNull();
|
|
83
84
|
});
|
|
84
85
|
|
|
85
|
-
it("type in filter input dispatch searchCallback with correct query", () => {
|
|
86
|
+
it("type in filter input dispatch searchCallback with correct query", async () => {
|
|
86
87
|
const searchText = "a";
|
|
88
|
+
const user = userEvent.setup({ delay: null });
|
|
89
|
+
|
|
90
|
+
const rendered = render(<SearchFilterDropdown {...props} />);
|
|
91
|
+
await waitForLoad(rendered);
|
|
87
92
|
|
|
88
|
-
const
|
|
89
|
-
const input = getByRole("textbox");
|
|
93
|
+
const input = rendered.getByRole("textbox");
|
|
90
94
|
|
|
91
|
-
|
|
95
|
+
await user.type(input, searchText);
|
|
92
96
|
|
|
93
97
|
expect(props.searchCallback).toBeCalledWith({
|
|
94
98
|
query: `${props.query}${searchText}`,
|
|
@@ -97,8 +101,12 @@ describe("<SearchFilterDropDown/>", () => {
|
|
|
97
101
|
});
|
|
98
102
|
|
|
99
103
|
it("remove filter dispatches removeFilter", async () => {
|
|
100
|
-
const
|
|
101
|
-
|
|
104
|
+
const rendered = render(<SearchFilterDropdown {...props} />);
|
|
105
|
+
await waitForLoad(rendered);
|
|
106
|
+
|
|
107
|
+
const user = userEvent.setup({ delay: null });
|
|
108
|
+
|
|
109
|
+
await user.click(rendered.container.querySelector('[class="delete icon"]'));
|
|
102
110
|
await waitFor(() => {
|
|
103
111
|
expect(props.removeFilter).toBeCalledTimes(1);
|
|
104
112
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { shallow } from "enzyme";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
2
|
import { SearchInput } from "../SearchInput";
|
|
4
3
|
|
|
5
4
|
describe("<SearchInput />", () => {
|
|
@@ -7,8 +6,9 @@ describe("<SearchInput />", () => {
|
|
|
7
6
|
const placeholder = "Search...";
|
|
8
7
|
const props = { onChange, placeholder };
|
|
9
8
|
|
|
10
|
-
it("matches the latest snapshot", () => {
|
|
11
|
-
const
|
|
12
|
-
|
|
9
|
+
it("matches the latest snapshot", async () => {
|
|
10
|
+
const rendered = render(<SearchInput {...props} />);
|
|
11
|
+
await waitForLoad(rendered);
|
|
12
|
+
expect(rendered.container).toMatchSnapshot();
|
|
13
13
|
});
|
|
14
14
|
});
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
/* eslint-disable react/prop-types */
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { render } from "@truedat/test/render";
|
|
4
|
-
|
|
5
|
-
import userEvent from "@testing-library/user-event";
|
|
6
2
|
import { Icon, Dropdown, Segment } from "semantic-ui-react";
|
|
3
|
+
import userEvent from "@testing-library/user-event";
|
|
4
|
+
|
|
5
|
+
import { render } from "@truedat/test/render";
|
|
7
6
|
|
|
8
7
|
import { SelectedFilters } from "../SelectedFilters";
|
|
9
8
|
|
|
10
|
-
jest.mock("react-router
|
|
11
|
-
...jest.requireActual("react-router
|
|
9
|
+
jest.mock("react-router", () => ({
|
|
10
|
+
...jest.requireActual("react-router"),
|
|
12
11
|
useLocation: () => ({
|
|
13
12
|
pathname: "/domains/123/structures",
|
|
14
13
|
}),
|
|
15
14
|
}));
|
|
16
15
|
|
|
17
|
-
const DummyLoader = () => <div
|
|
16
|
+
const DummyLoader = () => <div />;
|
|
18
17
|
const DummyFilerItem = ({ active, toggleFilterValue, option }) => (
|
|
19
18
|
<Dropdown.Item onClick={() => toggleFilterValue(option)} active={active}>
|
|
20
19
|
<Segment vertical>
|
|
@@ -55,49 +54,51 @@ describe("<SelectedFilters/>", () => {
|
|
|
55
54
|
},
|
|
56
55
|
};
|
|
57
56
|
|
|
58
|
-
it("matches the latest snapshot", () => {
|
|
59
|
-
const
|
|
60
|
-
expect(container).toMatchSnapshot();
|
|
57
|
+
it("matches the latest snapshot", async () => {
|
|
58
|
+
const rendered = render(<SelectedFilters {...props} />);
|
|
59
|
+
expect(rendered.container).toMatchSnapshot();
|
|
61
60
|
});
|
|
62
61
|
|
|
63
|
-
it("dispatches resetFilters", () => {
|
|
64
|
-
const
|
|
62
|
+
it("dispatches resetFilters", async () => {
|
|
63
|
+
const rendered = render(<SelectedFilters {...props} />, renderOptions);
|
|
64
|
+
const user = userEvent.setup({ delay: null });
|
|
65
65
|
|
|
66
66
|
expect(props.resetFilters).toBeCalledTimes(0);
|
|
67
|
-
|
|
67
|
+
await user.click(rendered.getByText(/clean filters/i));
|
|
68
68
|
expect(props.resetFilters).toBeCalledTimes(1);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
-
it("does not render Save filters option if saveFilters is undefined", () => {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
renderOptions
|
|
75
|
-
);
|
|
76
|
-
expect(queryByText(messages["search.save_filters"])).toBeNull();
|
|
71
|
+
it("does not render Save filters option if saveFilters is undefined", async () => {
|
|
72
|
+
const rendered = render(<SelectedFilters {...props} />, renderOptions);
|
|
73
|
+
expect(rendered.queryByText(/save filters/i)).toBeNull();
|
|
77
74
|
});
|
|
78
75
|
|
|
79
|
-
it("renders Save filters option if saveFilters is defined", () => {
|
|
76
|
+
it("renders Save filters option if saveFilters is defined", async () => {
|
|
80
77
|
const customProps = { ...props, saveFilters: jest.fn() };
|
|
81
|
-
const
|
|
78
|
+
const rendered = render(
|
|
82
79
|
<SelectedFilters {...customProps} />,
|
|
83
80
|
renderOptions
|
|
84
81
|
);
|
|
85
|
-
expect(getByText(
|
|
82
|
+
expect(rendered.getByText(/save filters/i)).toBeInTheDocument();
|
|
86
83
|
});
|
|
87
84
|
|
|
88
|
-
it("does not render userFilters if they are empty", () => {
|
|
85
|
+
it("does not render userFilters if they are empty", async () => {
|
|
89
86
|
const customProps = { ...props, userFilters: [] };
|
|
90
|
-
const
|
|
91
|
-
expect(
|
|
87
|
+
const rendered = render(<SelectedFilters {...customProps} />);
|
|
88
|
+
expect(
|
|
89
|
+
rendered.container.getElementsByClassName("userFilter")
|
|
90
|
+
).toHaveLength(0);
|
|
92
91
|
});
|
|
93
92
|
|
|
94
|
-
it("renders userFilters if they are defined", () => {
|
|
93
|
+
it("renders userFilters if they are defined", async () => {
|
|
95
94
|
const customProps = { ...props, userFilters: [{ country: ["a"] }] };
|
|
96
|
-
const
|
|
97
|
-
expect(
|
|
95
|
+
const rendered = render(<SelectedFilters {...customProps} />);
|
|
96
|
+
expect(
|
|
97
|
+
rendered.container.getElementsByClassName("userFilter")
|
|
98
|
+
).toHaveLength(1);
|
|
98
99
|
});
|
|
99
100
|
|
|
100
|
-
it("renders FilterMultilevelDropdown if filter is of type domain", () => {
|
|
101
|
+
it("renders FilterMultilevelDropdown if filter is of type domain", async () => {
|
|
101
102
|
const customProps = {
|
|
102
103
|
...props,
|
|
103
104
|
selectedFilters: ["taxonomy"],
|
|
@@ -105,13 +106,13 @@ describe("<SelectedFilters/>", () => {
|
|
|
105
106
|
filterTypes: { taxonomy: "domain" },
|
|
106
107
|
selectedFilterValues: [{ id: 1, name: "foo", level: 0 }],
|
|
107
108
|
};
|
|
108
|
-
const
|
|
109
|
+
const rendered = render(<SelectedFilters {...customProps} />);
|
|
109
110
|
expect(
|
|
110
|
-
container.querySelector('[name="filterMultilevelDropdown"]')
|
|
111
|
+
rendered.container.querySelector('[name="filterMultilevelDropdown"]')
|
|
111
112
|
).not.toBeNull();
|
|
112
113
|
});
|
|
113
114
|
|
|
114
|
-
it("renders HierarchyFilterDropdown if filter is of type hierarchy", () => {
|
|
115
|
+
it("renders HierarchyFilterDropdown if filter is of type hierarchy", async () => {
|
|
115
116
|
const customProps = {
|
|
116
117
|
...props,
|
|
117
118
|
selectedFilters: ["hierarchy_field"],
|
|
@@ -119,13 +120,13 @@ describe("<SelectedFilters/>", () => {
|
|
|
119
120
|
filterTypes: { hierarchy_field: "hierarchy" },
|
|
120
121
|
selectedFilterValues: [],
|
|
121
122
|
};
|
|
122
|
-
const
|
|
123
|
+
const rendered = render(<SelectedFilters {...customProps} />);
|
|
123
124
|
expect(
|
|
124
|
-
container.querySelector('[name="hierarchyFilterDropdown"]')
|
|
125
|
+
rendered.container.querySelector('[name="hierarchyFilterDropdown"]')
|
|
125
126
|
).not.toBeNull();
|
|
126
127
|
});
|
|
127
128
|
|
|
128
|
-
it("renders SearchFilterDropdown if filter is of type search", () => {
|
|
129
|
+
it("renders SearchFilterDropdown if filter is of type search", async () => {
|
|
129
130
|
const customProps = {
|
|
130
131
|
...props,
|
|
131
132
|
selectedFilters: ["search_filter"],
|
|
@@ -145,9 +146,9 @@ describe("<SelectedFilters/>", () => {
|
|
|
145
146
|
},
|
|
146
147
|
searchFilterDispacher: jest.fn(),
|
|
147
148
|
};
|
|
148
|
-
const
|
|
149
|
+
const rendered = render(<SelectedFilters {...customProps} />);
|
|
149
150
|
expect(
|
|
150
|
-
container.querySelector('[name="searchFilterDropdown"]')
|
|
151
|
+
rendered.container.querySelector('[name="searchFilterDropdown"]')
|
|
151
152
|
).not.toBeNull();
|
|
152
153
|
});
|
|
153
154
|
});
|
|
@@ -211,17 +212,19 @@ describe("<SelectedFilters/> taxonomy screens", () => {
|
|
|
211
212
|
searchFilterDispacher: jest.fn(),
|
|
212
213
|
};
|
|
213
214
|
|
|
214
|
-
it("matches the latest snapshot", () => {
|
|
215
|
-
const
|
|
216
|
-
expect(container).toMatchSnapshot();
|
|
215
|
+
it("matches the latest snapshot", async () => {
|
|
216
|
+
const rendered = render(<SelectedFilters {...props} />);
|
|
217
|
+
expect(rendered.container).toMatchSnapshot();
|
|
217
218
|
});
|
|
218
219
|
|
|
219
|
-
it("render only Show filters", () => {
|
|
220
|
-
const
|
|
221
|
-
expect(queryByText("Hide Domain Filter")).toBeNull();
|
|
222
|
-
expect(queryByText("Show Status Filter")).toBeInTheDocument();
|
|
223
|
-
expect(queryByText("Hide Multiple Domain Filter")).toBeNull();
|
|
224
|
-
expect(queryByText("Hide Other Domain Filter")).toBeNull();
|
|
225
|
-
expect(
|
|
220
|
+
it("render only Show filters", async () => {
|
|
221
|
+
const rendered = render(<SelectedFilters {...props} />);
|
|
222
|
+
expect(rendered.queryByText("Hide Domain Filter")).toBeNull();
|
|
223
|
+
expect(rendered.queryByText("Show Status Filter")).toBeInTheDocument();
|
|
224
|
+
expect(rendered.queryByText("Hide Multiple Domain Filter")).toBeNull();
|
|
225
|
+
expect(rendered.queryByText("Hide Other Domain Filter")).toBeNull();
|
|
226
|
+
expect(
|
|
227
|
+
rendered.queryByText("Show Status and Domain Filter")
|
|
228
|
+
).toBeInTheDocument();
|
|
226
229
|
});
|
|
227
230
|
});
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { waitForElementToBeRemoved } from "@testing-library/react";
|
|
4
|
-
import { CATALOG_VIEW_CONFIGS_QUERY } from "@truedat/dd/api/queries";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
2
|
+
import { CATALOG_VIEW_CONFIGS_QUERY } from "@truedat/core/api/queries";
|
|
5
3
|
import SideMenu from "../SideMenu";
|
|
6
4
|
|
|
7
5
|
jest.mock("@truedat/core/hooks", () => ({
|
|
@@ -39,14 +37,13 @@ const renderOpts = {
|
|
|
39
37
|
|
|
40
38
|
describe("<SideMenu />", () => {
|
|
41
39
|
it("matches the latest snapshot", async () => {
|
|
42
|
-
const
|
|
40
|
+
const rendered = render(
|
|
43
41
|
<SideMenu>
|
|
44
42
|
<p>Hello</p>
|
|
45
43
|
</SideMenu>,
|
|
46
44
|
renderOpts
|
|
47
45
|
);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
expect(container).toMatchSnapshot();
|
|
46
|
+
await waitForLoad(rendered);
|
|
47
|
+
expect(rendered.container).toMatchSnapshot();
|
|
51
48
|
});
|
|
52
49
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render } from "@truedat/test/render";
|
|
3
|
-
import { within } from "@testing-library/react";
|
|
4
1
|
import userEvent from "@testing-library/user-event";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
5
3
|
import { StructureFilterItem } from "../StructureFilterItem";
|
|
6
4
|
|
|
5
|
+
const user = userEvent.setup({ delay: null });
|
|
6
|
+
|
|
7
7
|
const props = {
|
|
8
8
|
active: true,
|
|
9
9
|
filter: "foo",
|
|
@@ -12,15 +12,17 @@ const props = {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
describe("<StructureFilterItem/>", () => {
|
|
15
|
-
it("matches the latest snapshot", () => {
|
|
16
|
-
const
|
|
17
|
-
|
|
15
|
+
it("matches the latest snapshot", async () => {
|
|
16
|
+
const rendered = render(<StructureFilterItem {...props} />);
|
|
17
|
+
await waitForLoad(rendered);
|
|
18
|
+
expect(rendered.container).toMatchSnapshot();
|
|
18
19
|
});
|
|
19
20
|
|
|
20
|
-
it("dispatches toggleFilterValue on click", () => {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
it("dispatches toggleFilterValue on click", async () => {
|
|
22
|
+
const rendered = render(<StructureFilterItem {...props} />);
|
|
23
|
+
await waitForLoad(rendered);
|
|
24
|
+
expect(props.toggleFilterValue).toHaveBeenCalledTimes(0);
|
|
25
|
+
await user.click(rendered.getByText(/bar/));
|
|
26
|
+
expect(props.toggleFilterValue).toHaveBeenCalledTimes(1);
|
|
25
27
|
});
|
|
26
28
|
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
2
|
+
import { SystemsLoader } from "../SystemsLoader";
|
|
3
|
+
|
|
4
|
+
describe("<SystemsLoader />", () => {
|
|
5
|
+
it("matches the latest snapshot", async () => {
|
|
6
|
+
const fetchSystems = jest.fn();
|
|
7
|
+
const systemsLoading = true;
|
|
8
|
+
const props = { fetchSystems, systemsLoading, clearSystems: jest.fn() };
|
|
9
|
+
const rendered = render(<SystemsLoader {...props} />);
|
|
10
|
+
await waitForLoad(rendered);
|
|
11
|
+
expect(rendered.container).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it("renders null if systemsLoading is false", async () => {
|
|
15
|
+
const fetchSystems = jest.fn();
|
|
16
|
+
const systemsLoading = false;
|
|
17
|
+
const props = { fetchSystems, systemsLoading, clearSystems: jest.fn() };
|
|
18
|
+
const rendered = render(<SystemsLoader {...props} />);
|
|
19
|
+
await waitForLoad(rendered);
|
|
20
|
+
expect(rendered.container.firstChild).toBeNull();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("calls fetchSystems when component mounts, clearSystems when component unmounts", async () => {
|
|
24
|
+
const fetchSystems = jest.fn();
|
|
25
|
+
const clearSystems = jest.fn();
|
|
26
|
+
const systemsLoading = false;
|
|
27
|
+
const props = {
|
|
28
|
+
fetchSystems,
|
|
29
|
+
systemsLoading,
|
|
30
|
+
clearSystems,
|
|
31
|
+
};
|
|
32
|
+
const rendered = render(<SystemsLoader {...props} />);
|
|
33
|
+
await waitForLoad(rendered);
|
|
34
|
+
expect(clearSystems).not.toHaveBeenCalled();
|
|
35
|
+
expect(fetchSystems).toHaveBeenCalledTimes(1);
|
|
36
|
+
rendered.unmount();
|
|
37
|
+
expect(clearSystems).toHaveBeenCalledTimes(1);
|
|
38
|
+
expect(fetchSystems).toHaveBeenCalledTimes(1);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { waitForElementToBeRemoved } from "@testing-library/react";
|
|
3
1
|
import userEvent from "@testing-library/user-event";
|
|
4
|
-
import { render } from "@truedat/test/render";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
5
3
|
import {
|
|
6
4
|
errorTemplateMock,
|
|
7
5
|
multipleTemplatesMock,
|
|
@@ -19,24 +17,21 @@ describe("<TemplateSelector />", () => {
|
|
|
19
17
|
|
|
20
18
|
it("matches the latest snapshot (loading)", () => {
|
|
21
19
|
const renderOpts = { mocks: [multipleTemplatesMock(variables)] };
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
);
|
|
26
|
-
expect(queryByText(/loading/i)).toBeInTheDocument();
|
|
27
|
-
expect(container).toMatchSnapshot();
|
|
20
|
+
const rendered = render(<TemplateSelector {...props} />, renderOpts);
|
|
21
|
+
expect(rendered.getByText(/loading/i)).toBeInTheDocument();
|
|
22
|
+
expect(rendered.container).toMatchSnapshot();
|
|
28
23
|
});
|
|
29
24
|
|
|
30
25
|
it("matches the latest snapshot", async () => {
|
|
31
26
|
const renderOpts = { mocks: [multipleTemplatesMock(variables)] };
|
|
32
27
|
const onLoad = jest.fn();
|
|
33
|
-
const
|
|
28
|
+
const rendered = render(
|
|
34
29
|
<TemplateSelector {...props} onLoad={onLoad} />,
|
|
35
30
|
renderOpts
|
|
36
31
|
);
|
|
37
|
-
await
|
|
38
|
-
expect(
|
|
39
|
-
expect(container).toMatchSnapshot();
|
|
32
|
+
await waitForLoad(rendered);
|
|
33
|
+
expect(rendered.getByText(/template1/i)).toBeInTheDocument();
|
|
34
|
+
expect(rendered.container).toMatchSnapshot();
|
|
40
35
|
expect(onLoad.mock.calls.length).toBe(1);
|
|
41
36
|
});
|
|
42
37
|
|
|
@@ -47,41 +42,44 @@ describe("<TemplateSelector />", () => {
|
|
|
47
42
|
...props,
|
|
48
43
|
label: "foo_label",
|
|
49
44
|
};
|
|
50
|
-
const
|
|
45
|
+
const rendered = render(
|
|
51
46
|
<TemplateSelector {...newProps} onLoad={onLoad} />,
|
|
52
47
|
renderOpts
|
|
53
48
|
);
|
|
54
|
-
await
|
|
55
|
-
expect(
|
|
56
|
-
expect(
|
|
49
|
+
await waitForLoad(rendered);
|
|
50
|
+
expect(rendered.getByText(/template1/i)).toBeInTheDocument();
|
|
51
|
+
expect(rendered.getByText(/foo_label/i)).toBeInTheDocument();
|
|
57
52
|
});
|
|
58
53
|
|
|
59
54
|
it("matches the latest snapshot when required", async () => {
|
|
60
55
|
const renderOpts = { mocks: [multipleTemplatesMock(variables)] };
|
|
61
|
-
const
|
|
56
|
+
const rendered = render(
|
|
62
57
|
<TemplateSelector {...props} required />,
|
|
63
58
|
renderOpts
|
|
64
59
|
);
|
|
65
|
-
await
|
|
66
|
-
expect(
|
|
67
|
-
expect(container).toMatchSnapshot();
|
|
60
|
+
await waitForLoad(rendered);
|
|
61
|
+
expect(rendered.getByText(/template1/i)).toBeInTheDocument();
|
|
62
|
+
expect(rendered.container).toMatchSnapshot();
|
|
68
63
|
});
|
|
69
64
|
|
|
70
65
|
it("is empty if templates query returns an error", async () => {
|
|
71
66
|
const renderOpts = { mocks: [errorTemplateMock(variables)] };
|
|
72
|
-
const
|
|
67
|
+
const rendered = render(
|
|
73
68
|
<TemplateSelector {...props} required />,
|
|
74
69
|
renderOpts
|
|
75
70
|
);
|
|
76
|
-
await
|
|
77
|
-
expect(queryByText(
|
|
71
|
+
await waitForLoad(rendered);
|
|
72
|
+
expect(rendered.queryByText(/template1/i)).not.toBeInTheDocument();
|
|
78
73
|
});
|
|
79
74
|
|
|
80
75
|
it("calls onChange when template is selected", async () => {
|
|
81
76
|
const renderOpts = { mocks: [multipleTemplatesMock(variables)] };
|
|
82
|
-
const
|
|
77
|
+
const rendered = render(<TemplateSelector {...props} />, renderOpts);
|
|
83
78
|
|
|
84
|
-
userEvent.
|
|
79
|
+
const user = userEvent.setup({ delay: null });
|
|
80
|
+
await user.click(
|
|
81
|
+
await rendered.findByRole("option", { name: /template1/i })
|
|
82
|
+
);
|
|
85
83
|
expect(onChange.mock.calls[0][1]).toMatchObject({
|
|
86
84
|
template: { id: "1", label: "template1" },
|
|
87
85
|
});
|
|
@@ -89,8 +87,8 @@ describe("<TemplateSelector />", () => {
|
|
|
89
87
|
|
|
90
88
|
it("is empty when query returns a single template", async () => {
|
|
91
89
|
const renderOpts = { mocks: [singleTemplateMock(variables)] };
|
|
92
|
-
const
|
|
93
|
-
await
|
|
94
|
-
expect(queryByText(
|
|
90
|
+
const rendered = render(<TemplateSelector {...props} />, renderOpts);
|
|
91
|
+
await waitForLoad(rendered);
|
|
92
|
+
expect(rendered.queryByText(/template1/i)).not.toBeInTheDocument();
|
|
95
93
|
});
|
|
96
94
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
2
|
+
import { TemplatesLoader } from "@truedat/core/components/TemplatesLoader";
|
|
3
|
+
|
|
4
|
+
describe("<TemplatesLoader />", () => {
|
|
5
|
+
it("calls fetchTemplates when component mounts but not when it unmounts", async () => {
|
|
6
|
+
const props = {
|
|
7
|
+
clearTemplates: jest.fn(),
|
|
8
|
+
fetchTemplates: jest.fn(),
|
|
9
|
+
scope: "foo",
|
|
10
|
+
};
|
|
11
|
+
const rendered = render(<TemplatesLoader {...props} />);
|
|
12
|
+
await waitForLoad(rendered);
|
|
13
|
+
expect(props.fetchTemplates).toHaveBeenCalledTimes(1);
|
|
14
|
+
rendered.unmount();
|
|
15
|
+
expect(props.fetchTemplates).toHaveBeenCalledTimes(1);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("calls clearTemplates when component unmounts but not when it mounts", async () => {
|
|
19
|
+
const props = {
|
|
20
|
+
clearTemplates: jest.fn(),
|
|
21
|
+
fetchTemplates: jest.fn(),
|
|
22
|
+
scope: "foo",
|
|
23
|
+
};
|
|
24
|
+
const rendered = render(<TemplatesLoader {...props} />);
|
|
25
|
+
await waitForLoad(rendered);
|
|
26
|
+
expect(props.clearTemplates).toHaveBeenCalledTimes(0);
|
|
27
|
+
rendered.unmount();
|
|
28
|
+
expect(props.clearTemplates).toHaveBeenCalledTimes(1);
|
|
29
|
+
});
|
|
30
|
+
});
|