@truedat/core 8.7.0 → 8.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/package.json +3 -3
  2. package/src/components/AddMemberForm.js +3 -3
  3. package/src/components/Alert.js +3 -3
  4. package/src/components/AlertExporter.js +4 -4
  5. package/src/components/AvailableFilters.js +5 -5
  6. package/src/components/CSVFileModal.js +1 -1
  7. package/src/components/CardGroupsAccordion.js +4 -4
  8. package/src/components/CatalogMenu.js +2 -2
  9. package/src/components/CommentsForm.js +1 -1
  10. package/src/components/DomainSearchFilter.js +9 -9
  11. package/src/components/DomainSelector.js +1 -1
  12. package/src/components/FilterDropdown.js +5 -5
  13. package/src/components/FilterMultilevelDropdown.js +9 -9
  14. package/src/components/GlossaryMenu.js +10 -7
  15. package/src/components/Graph.js +199 -127
  16. package/src/components/GroupActions.js +2 -2
  17. package/src/components/Hierarchy.js +1 -1
  18. package/src/components/HierarchyFilterDropdown.js +7 -7
  19. package/src/components/HierarchySelector.js +1 -1
  20. package/src/components/LanguagesTabs.js +2 -2
  21. package/src/components/OptionGroup.js +8 -9
  22. package/src/components/QualityMenu.js +6 -8
  23. package/src/components/ResourceMembers.js +3 -3
  24. package/src/components/SearchFilterDropdown.js +3 -3
  25. package/src/components/SidebarToggle.js +1 -1
  26. package/src/components/Submenu.js +46 -27
  27. package/src/components/SystemsLoader.js +1 -1
  28. package/src/components/TemplatesLoader.js +1 -1
  29. package/src/components/TreeSelector.js +2 -2
  30. package/src/components/UploadJob.js +3 -3
  31. package/src/components/UploadJobBreadcrumbs.js +4 -1
  32. package/src/components/UploadJobParser.js +4 -3
  33. package/src/components/UploadModal.js +1 -1
  34. package/src/components/UserFilter.js +1 -1
  35. package/src/components/UserFilters.js +2 -2
  36. package/src/components/__tests__/ArrayDecorator.spec.js +2 -2
  37. package/src/components/__tests__/CardGroupsAccordion.spec.js +6 -6
  38. package/src/components/__tests__/CatalogMenu.spec.js +1 -1
  39. package/src/components/__tests__/DateTime.spec.js +1 -1
  40. package/src/components/__tests__/DomainSearchFilter.spec.js +2 -2
  41. package/src/components/__tests__/DomainSearchFilterItem.spec.js +7 -7
  42. package/src/components/__tests__/DomainSelector.spec.js +3 -3
  43. package/src/components/__tests__/DropdownMenuItem.spec.js +3 -3
  44. package/src/components/__tests__/FilterDropdown.spec.js +11 -11
  45. package/src/components/__tests__/FilterMultilevelDropdown.spec.js +2 -2
  46. package/src/components/__tests__/GlossaryMenu.spec.js +2 -2
  47. package/src/components/__tests__/Graph.spec.js +12 -4
  48. package/src/components/__tests__/GroupActions.spec.js +4 -4
  49. package/src/components/__tests__/Hierarchy.spec.js +1 -1
  50. package/src/components/__tests__/HierarchyFilterDropdown.spec.js +5 -5
  51. package/src/components/__tests__/HierarchyNodeFinder.spec.js +4 -4
  52. package/src/components/__tests__/HierarchySelector.spec.js +7 -5
  53. package/src/components/__tests__/Markdown.spec.js +22 -8
  54. package/src/components/__tests__/ModalSaveFilter.spec.js +1 -1
  55. package/src/components/__tests__/Pagination.spec.js +2 -2
  56. package/src/components/__tests__/ResourceMembers.spec.js +4 -4
  57. package/src/components/__tests__/SearchDateFilter.spec.js +10 -5
  58. package/src/components/__tests__/SearchFilterDropdown.spec.js +1 -1
  59. package/src/components/__tests__/SelectedFilters.spec.js +7 -7
  60. package/src/components/__tests__/SideMenu.spec.js +1 -1
  61. package/src/components/__tests__/Submenu.spec.js +1 -1
  62. package/src/components/__tests__/TemplateSelector.spec.js +5 -5
  63. package/src/components/__tests__/TreeSelector.spec.js +23 -24
  64. package/src/components/__tests__/UploadJob.spec.js +1 -3
  65. package/src/components/__tests__/UploadJobBreadcrumbs.spec.js +4 -4
  66. package/src/components/__tests__/UploadJobParser.spec.js +42 -38
  67. package/src/components/__tests__/UploadModal.spec.js +9 -9
  68. package/src/components/__tests__/UserFilters.spec.js +1 -1
  69. package/src/components/graph/ColoredEdge.js +29 -23
  70. package/src/components/graph/edgeLayout.js +4 -1
  71. package/src/hooks/__tests__/useActiveRoutes.spec.js +32 -18
  72. package/src/hooks/useAclEntries.js +2 -2
  73. package/src/hooks/useActiveRoutes.js +14 -6
  74. package/src/hooks/useAuthorized.js +3 -3
  75. package/src/hooks/useHierarchies.js +8 -8
  76. package/src/hooks/useLocales.js +3 -3
  77. package/src/hooks/useMessages.js +1 -1
  78. package/src/hooks/useOnScreen.js +1 -1
  79. package/src/hooks/useUploadJobs.js +2 -8
  80. package/src/hooks/useUserFilters.js +1 -1
  81. package/src/i18n/components/LangProvider.js +6 -6
  82. package/src/i18n/components/Languages.js +4 -4
  83. package/src/i18n/components/MessageForm.js +24 -13
  84. package/src/i18n/components/Messages.js +5 -5
  85. package/src/i18n/components/__tests__/I18nRoutes.spec.js +1 -1
  86. package/src/messages/index.js +1 -1
  87. package/src/reducers/comments.js +3 -3
  88. package/src/router/__tests__/ProtectedRoute.spec.js +1 -1
  89. package/src/routes.js +1 -1
  90. package/src/routesTree.js +6 -1
  91. package/src/routines.js +2 -2
  92. package/src/search/FilterDropdown.js +1 -1
  93. package/src/search/FilterMultilevelDropdown.js +10 -10
  94. package/src/search/FilterQueryDropdown.js +4 -4
  95. package/src/search/HierarchyFilterDropdown.js +7 -7
  96. package/src/search/SearchContext.js +19 -19
  97. package/src/search/SearchDateFilter.js +12 -2
  98. package/src/search/SearchFilters.js +1 -1
  99. package/src/search/SearchSelectedFilters.js +1 -1
  100. package/src/search/SearchWidget.js +6 -2
  101. package/src/search/UserFilter.js +1 -1
  102. package/src/search/UserFilters.js +4 -4
  103. package/src/search/__tests__/FilterDropdown.spec.js +3 -3
  104. package/src/search/__tests__/FilterQueryDropdown.spec.js +20 -18
  105. package/src/search/__tests__/ModalSaveFilter.spec.js +2 -2
  106. package/src/search/__tests__/SearchContext.spec.js +42 -42
  107. package/src/search/__tests__/SearchSelectedFilters.spec.js +21 -17
  108. package/src/search/__tests__/SearchWidget.spec.js +4 -4
  109. package/src/selectors/__tests__/getRiSubscopes.spec.js +1 -1
  110. package/src/selectors/__tests__/makeSearchQuerySelector.spec.js +2 -2
  111. package/src/selectors/getConceptSubscope.js +1 -1
  112. package/src/selectors/getDashboardConfig.js +3 -3
  113. package/src/selectors/getMessage.js +3 -3
  114. package/src/selectors/getRecipients.js +3 -3
  115. package/src/selectors/getRiSubscopes.js +2 -2
  116. package/src/selectors/getSidemenuGlossarySubscopes.js +1 -1
  117. package/src/selectors/makeActiveFiltersSelector.js +2 -2
  118. package/src/selectors/makeDateFiltersSelector.js +1 -1
  119. package/src/selectors/makeSearchQuerySelector.js +10 -10
  120. package/src/selectors/makeTagOptionsSelector.js +1 -4
  121. package/src/selectors/subscopedTemplates.js +2 -2
  122. package/src/services/columnPredicate.js +1 -1
  123. package/src/services/dateFilterFormatter.js +1 -1
  124. package/src/services/fieldType.js +1 -1
  125. package/src/services/formRules.js +16 -13
  126. package/src/services/getHierarchyOptions.js +2 -2
  127. package/src/services/message.js +7 -8
  128. package/src/services/operators.js +5 -5
  129. package/src/services/sort.js +2 -2
  130. package/src/services/swr.js +1 -1
  131. package/src/services/tree.js +2 -2
@@ -55,23 +55,23 @@ export const QualityMenu = ({ dashboardConfig, riSubscopes }) => {
55
55
  const authorized = useAuthorized(
56
56
  "quality",
57
57
  "quality_implementation_workflow_management",
58
- "quality_implementation_additional_actions"
58
+ "quality_implementation_additional_actions",
59
59
  );
60
60
 
61
61
  if (!authorized) return null;
62
62
 
63
63
  const filteredBaseItems = _.filter(
64
- ({ name }) => name != "quality_dashboard" || !_.isEmpty(dashboardConfig)
64
+ ({ name }) => name != "quality_dashboard" || !_.isEmpty(dashboardConfig),
65
65
  )(BASE_ITEMS);
66
66
 
67
67
  const extendedItems = filteredBaseItems.reduce((acc, item) => {
68
68
  acc.push(item);
69
69
 
70
70
  if (item.name === "implementations") {
71
- riSubscopes.forEach(subscope => {
71
+ riSubscopes.forEach((subscope) => {
72
72
  acc.push({
73
73
  name: subscope,
74
- routes: [IMPLEMENTATIONS_BY_SUBSCOPE.replace(':subscope', subscope)],
74
+ routes: [IMPLEMENTATIONS_BY_SUBSCOPE.replace(":subscope", subscope)],
75
75
  groups: ["quality"],
76
76
  });
77
77
  });
@@ -80,9 +80,7 @@ export const QualityMenu = ({ dashboardConfig, riSubscopes }) => {
80
80
  return acc;
81
81
  }, []);
82
82
 
83
- return (
84
- <Submenu items={extendedItems} icon={iconQuality} name="quality" />
85
- );
83
+ return <Submenu items={extendedItems} icon={iconQuality} name="quality" />;
86
84
  };
87
85
 
88
86
  QualityMenu.propTypes = {
@@ -99,4 +97,4 @@ export const mapStateToProps = (state) => ({
99
97
  riSubscopes: getRiSubscopes(state),
100
98
  });
101
99
 
102
- export default connect(mapStateToProps)(QualityMenu);
100
+ export default connect(mapStateToProps)(QualityMenu);
@@ -21,7 +21,7 @@ const matchesFilter = (filter) =>
21
21
  "principal.name",
22
22
  ]),
23
23
  _.map(toSearchable),
24
- _.some(_.includes(toSearchable(filter)))
24
+ _.some(_.includes(toSearchable(filter))),
25
25
  );
26
26
 
27
27
  const filterData = (filter, data) => {
@@ -43,7 +43,7 @@ export const ResourceMembers = ({ type, id }) => {
43
43
  const groupedResourceMembers = _.flow(
44
44
  _.sortBy(accentInsensitivePathOrder("role_name")),
45
45
  _.groupBy("role_name"),
46
- _.toPairs
46
+ _.toPairs,
47
47
  )(filteredResourceMembers);
48
48
 
49
49
  const handleFilterUsers = (_e, { value }) => {
@@ -86,7 +86,7 @@ export const ResourceMembers = ({ type, id }) => {
86
86
  onUpdate={() => refreshAclEntries()}
87
87
  {...m}
88
88
  />
89
- )
89
+ ),
90
90
  )}
91
91
  </Card.Group>
92
92
  </Fragment>
@@ -40,7 +40,7 @@ export const SearchFilterDropdown = ({
40
40
 
41
41
  const toogleSelectedOption = (selectedOption) => {
42
42
  const newSelectedOptions = selectedOptions.find(
43
- (s) => s.id === selectedOption.id
43
+ (s) => s.id === selectedOption.id,
44
44
  )
45
45
  ? selectedOptions.filter((s) => s.id !== selectedOption.id)
46
46
  : [...selectedOptions, selectedOption];
@@ -106,7 +106,7 @@ export const SearchFilterDropdown = ({
106
106
  toggleFilterValue={toogleSelectedOption}
107
107
  active={_.includes(_.prop("id")(option))(activeValues)}
108
108
  />
109
- ))
109
+ )),
110
110
  )(selectedOptions)}
111
111
  <Dropdown.Divider />
112
112
  {options &&
@@ -121,7 +121,7 @@ export const SearchFilterDropdown = ({
121
121
  toggleFilterValue={toogleSelectedOption}
122
122
  active={_.includes(_.prop("id")(option))(activeValues)}
123
123
  />
124
- ))
124
+ )),
125
125
  )(options)}
126
126
  {loading && (
127
127
  <Dimmer active inverted>
@@ -51,5 +51,5 @@ SidebarToggle.propTypes = {
51
51
  export const mapStateToProps = ({ sidebarVisible }) => ({ sidebarVisible });
52
52
 
53
53
  export default connect(mapStateToProps, { hideSidebar, toggleSidebar })(
54
- SidebarToggle
54
+ SidebarToggle,
55
55
  );
@@ -88,31 +88,44 @@ export const Submenu = ({
88
88
  const decodedPathname = decodeURIComponent(pathname);
89
89
  const routes = _.flatMap("routes")(filteredItems);
90
90
 
91
- const pathParts = pathname.split('/').filter(part => part !== '');
92
- const hasSubscopeInPath = pathname.includes('/subscope/');
91
+ const pathParts = pathname.split("/").filter((part) => part !== "");
92
+ const hasSubscopeInPath = pathname.includes("/subscope/");
93
+ // eslint-disable-next-line fp/no-let
93
94
  let subscopeName = null;
94
- if (hasSubscopeInPath && pathParts.length >= 3 && pathParts[1] === 'subscope') {
95
- subscopeName = decodeURIComponent(pathParts[2]).replace(/%20/g, ' ');
95
+ if (
96
+ hasSubscopeInPath &&
97
+ pathParts.length >= 3 &&
98
+ pathParts[1] === "subscope"
99
+ ) {
100
+ // eslint-disable-next-line fp/no-mutation
101
+ subscopeName = decodeURIComponent(pathParts[2]).replace(/%20/g, " ");
96
102
  }
97
103
 
98
- const isSubmenuActiveForSubscope = hasSubscopeInPath && subscopeName &&
99
- _.some(item =>
100
- item.name.toLowerCase() === subscopeName.toLowerCase()
101
- )(filteredItems);
104
+ const isSubmenuActiveForSubscope =
105
+ hasSubscopeInPath &&
106
+ subscopeName &&
107
+ _.some((item) => item.name.toLowerCase() === subscopeName.toLowerCase())(
108
+ filteredItems,
109
+ );
102
110
 
103
- const isSubmenuActiveForRoutes = _.some(item =>
104
- _.some(route => {
111
+ const isSubmenuActiveForRoutes = _.some((item) =>
112
+ _.some((route) => {
105
113
  const decodedPathname = decodeURIComponent(pathname);
106
- return decodedPathname === route ||
107
- decodedPathname.startsWith(`${route}/`) ||
108
- matchPath({ path: route }, decodedPathname);
109
- })(item.routes)
114
+ return (
115
+ decodedPathname === route ||
116
+ decodedPathname.startsWith(`${route}/`) ||
117
+ matchPath({ path: route }, decodedPathname)
118
+ );
119
+ })(item.routes),
110
120
  )(filteredItems);
111
121
 
112
122
  // Determine if submenu should be active, with special handling for management URLs
113
- const submenuIsActive = (isActive || isSubmenuActiveForSubscope || isSubmenuActiveForRoutes) &&
114
- !(name === 'glossary' && location.pathname.startsWith('/concepts/management/'));
115
-
123
+ const submenuIsActive =
124
+ (isActive || isSubmenuActiveForSubscope || isSubmenuActiveForRoutes) &&
125
+ !(
126
+ name === "glossary" &&
127
+ location.pathname.startsWith("/concepts/management/")
128
+ );
116
129
 
117
130
  if (submenuIsActive && sidebarVisible) {
118
131
  const menuItems = filteredItems.map((item, i) => {
@@ -121,11 +134,14 @@ export const Submenu = ({
121
134
  (item.isActive
122
135
  ? item.isActive()
123
136
  : hasSubscopeInPath && subscopeName
124
- ? item.name.toLowerCase() === subscopeName.toLowerCase()
125
- : item.routes.some(route =>
126
- route === activeRoute ||
127
- route === pathname || route === decodedPathname ||
128
- matchPath({ path: route }, pathname) || matchPath({ path: route }, decodedPathname) // Pattern match
137
+ ? item.name.toLowerCase() === subscopeName.toLowerCase()
138
+ : item.routes.some(
139
+ (route) =>
140
+ route === activeRoute ||
141
+ route === pathname ||
142
+ route === decodedPathname ||
143
+ matchPath({ path: route }, pathname) ||
144
+ matchPath({ path: route }, decodedPathname), // Pattern match
129
145
  ));
130
146
 
131
147
  return (
@@ -171,11 +187,14 @@ export const Submenu = ({
171
187
  (item.isActive
172
188
  ? item.isActive()
173
189
  : hasSubscopeInPath && subscopeName
174
- ? item.name.toLowerCase() === subscopeName.toLowerCase()
175
- : item.routes.some(route =>
176
- route === activeRoute ||
177
- route === pathname || route === decodedPathname ||
178
- matchPath({ path: route }, pathname) || matchPath({ path: route }, decodedPathname)
190
+ ? item.name.toLowerCase() === subscopeName.toLowerCase()
191
+ : item.routes.some(
192
+ (route) =>
193
+ route === activeRoute ||
194
+ route === pathname ||
195
+ route === decodedPathname ||
196
+ matchPath({ path: route }, pathname) ||
197
+ matchPath({ path: route }, decodedPathname),
179
198
  ));
180
199
 
181
200
  return (
@@ -23,5 +23,5 @@ SystemsLoader.propTypes = {
23
23
  const mapStateToProps = ({ systemsLoading }) => ({ systemsLoading });
24
24
 
25
25
  export default connect(mapStateToProps, { clearSystems, fetchSystems })(
26
- SystemsLoader
26
+ SystemsLoader,
27
27
  );
@@ -20,5 +20,5 @@ TemplatesLoader.propTypes = {
20
20
  };
21
21
 
22
22
  export default connect(null, { clearTemplates, fetchTemplates })(
23
- TemplatesLoader
23
+ TemplatesLoader,
24
24
  );
@@ -174,7 +174,7 @@ export const TreeSelector = ({
174
174
  const filterSearch = query ? _.filter(matchAny(query)) : _.identity;
175
175
 
176
176
  const filterDisplayed = _.filter(
177
- ({ id, level }) => level === 0 || _.includes(id)(displayed)
177
+ ({ id, level }) => level === 0 || _.includes(id)(displayed),
178
178
  );
179
179
 
180
180
  const trigger = labels ? (
@@ -209,7 +209,7 @@ export const TreeSelector = ({
209
209
  className={ascendants?.includes(String(option?.id)) ? "ascendant" : ""}
210
210
  {...option}
211
211
  />
212
- ))
212
+ )),
213
213
  )(options);
214
214
 
215
215
  const renderTreeSelector = () => {
@@ -79,7 +79,7 @@ export default function UploadJob({ scope }) {
79
79
  <DateTime value={events[0]?.inserted_at} />
80
80
  </Table.Cell>
81
81
  <Table.Cell></Table.Cell>
82
- </Table.Row>
82
+ </Table.Row>,
83
83
  );
84
84
 
85
85
  // Add expanded events if group is expanded
@@ -96,7 +96,7 @@ export default function UploadJob({ scope }) {
96
96
  <Table.Cell>
97
97
  <ResponseCell {...event} />
98
98
  </Table.Cell>
99
- </Table.Row>
99
+ </Table.Row>,
100
100
  );
101
101
  });
102
102
  }
@@ -187,7 +187,7 @@ export default function UploadJob({ scope }) {
187
187
  {_.isArray(job.events) && !_.isEmpty(job.events) ? (
188
188
  Object.entries(groupedEvents)
189
189
  .map(([status, events]) =>
190
- renderEventGroup(status, events)
190
+ renderEventGroup(status, events),
191
191
  )
192
192
  .flat()
193
193
  ) : (
@@ -2,7 +2,10 @@ import PropTypes from "prop-types";
2
2
  import { Breadcrumb } from "semantic-ui-react";
3
3
  import { Link } from "react-router";
4
4
  import { FormattedMessage } from "react-intl";
5
- import { IMPLEMENTATIONS_UPLOAD_JOBS, STRUCTURE_NOTES_UPLOAD_JOBS } from "@truedat/core/routes";
5
+ import {
6
+ IMPLEMENTATIONS_UPLOAD_JOBS,
7
+ STRUCTURE_NOTES_UPLOAD_JOBS,
8
+ } from "@truedat/core/routes";
6
9
 
7
10
  export const UploadJobBreadcrumbs = ({ filename, scope }) => {
8
11
  const uploadJobsPath = (scope) => {
@@ -222,7 +222,7 @@ const ErrorDetail = ({ response }) => {
222
222
 
223
223
  const visibleDetails = _.filter(
224
224
  ([, value]) => value != null && value !== "",
225
- details
225
+ details,
226
226
  );
227
227
 
228
228
  return (
@@ -281,6 +281,7 @@ const CompletedDetail = ({ response }) => {
281
281
  _.filter((item) => _.get(item.key, response) > 0),
282
282
  (items) => {
283
283
  const result = [];
284
+ // eslint-disable-next-line fp/no-let, fp/no-mutation
284
285
  for (let i = 0; i < items.length; i++) {
285
286
  const item = items[i];
286
287
  result.push(
@@ -288,7 +289,7 @@ const CompletedDetail = ({ response }) => {
288
289
  <FormattedMessage id={item.messageId} />
289
290
  {`: ${response[item.key]}`}
290
291
  {i < items.length - 1 && <span>&nbsp;|&nbsp;</span>}
291
- </span>
292
+ </span>,
292
293
  );
293
294
  }
294
295
  return result;
@@ -389,7 +390,7 @@ const formatValue = (value, key) => {
389
390
  if (_.isArray(value)) {
390
391
  return _.flow(
391
392
  _.map((v) => formatValue(v, key)),
392
- _.join(", ")
393
+ _.join(", "),
393
394
  )(value);
394
395
  }
395
396
  if (_.isObject(value)) {
@@ -132,7 +132,7 @@ export const UploadModal = (props) => {
132
132
  ...extraAction,
133
133
  onClick: handleExtraAction,
134
134
  }
135
- : false
135
+ : false,
136
136
  )}
137
137
  trigger={trigger}
138
138
  closeIcon
@@ -22,7 +22,7 @@ export const UserFilter = ({
22
22
 
23
23
  const { trigger: deleteUserFilter } = useUserFiltersDelete(
24
24
  userFilter.id,
25
- userFiltersType
25
+ userFiltersType,
26
26
  );
27
27
 
28
28
  const handleDelete = () => {
@@ -33,9 +33,9 @@ export const UserFilters = ({
33
33
 
34
34
  const sortedUserFilters = _.flow(
35
35
  _.filter(({ filters }) =>
36
- _.isNull(domainId) ? true : showDomainFilter(filters)
36
+ _.isNull(domainId) ? true : showDomainFilter(filters),
37
37
  ),
38
- _.orderBy(["is_global", "id"], ["desc", "asc"])
38
+ _.orderBy(["is_global", "id"], ["desc", "asc"]),
39
39
  )(userFilters);
40
40
 
41
41
  return _.isEmpty(userFilters) ? null : (
@@ -31,7 +31,7 @@ describe("<ArrayDecorator />", () => {
31
31
  const concatenator = ", ";
32
32
  const list = [...showableItems, ...hiddenItems];
33
33
  const { getByText, getByRole, queryAllByRole } = render(
34
- ArrayDecorator(showableItems.length, concatenator)(list)
34
+ ArrayDecorator(showableItems.length, concatenator)(list),
35
35
  );
36
36
 
37
37
  expect(queryAllByRole("listitem")).toEqual([]);
@@ -47,7 +47,7 @@ describe("<ArrayDecorator />", () => {
47
47
  it("does not show the popup label whith no hidden items", async () => {
48
48
  const showableItems = ["showable_item_1", "showable_item_2"];
49
49
  const { queryByText } = render(
50
- ArrayDecorator(showableItems.length, ",")(showableItems)
50
+ ArrayDecorator(showableItems.length, ",")(showableItems),
51
51
  );
52
52
  expect(queryByText("+0")).not.toBeInTheDocument();
53
53
  });
@@ -84,7 +84,7 @@ describe("<CardGroupsAccordion />", () => {
84
84
  <CardGroupsAccordion
85
85
  groups={groups_all_cards_grouped}
86
86
  cardComponent={cardComponent}
87
- />
87
+ />,
88
88
  );
89
89
  await waitForLoad(rendered);
90
90
  expect(rendered.container).toMatchSnapshot();
@@ -95,13 +95,13 @@ describe("<CardGroupsAccordion />", () => {
95
95
  <CardGroupsAccordion
96
96
  groups={groups_any_cards_without_group}
97
97
  cardComponent={cardComponent}
98
- />
98
+ />,
99
99
  );
100
100
  await waitForLoad(rendered);
101
101
 
102
102
  await waitFor(() => {
103
103
  expect(
104
- rendered.getByText(/components.CardGroupsAccordion.withoutGroups/i)
104
+ rendered.getByText(/components.CardGroupsAccordion.withoutGroups/i),
105
105
  ).toBeInTheDocument();
106
106
  });
107
107
  });
@@ -111,7 +111,7 @@ describe("<CardGroupsAccordion />", () => {
111
111
  <CardGroupsAccordion
112
112
  groups={groups_any_cards_without_group}
113
113
  cardComponent={cardComponent}
114
- />
114
+ />,
115
115
  );
116
116
  await waitForLoad(rendered);
117
117
 
@@ -120,7 +120,7 @@ describe("<CardGroupsAccordion />", () => {
120
120
 
121
121
  await waitFor(() => {
122
122
  expect(firstGroup).toMatch(
123
- /components.CardGroupsAccordion.withoutGroups/i
123
+ /components.CardGroupsAccordion.withoutGroups/i,
124
124
  );
125
125
  });
126
126
  });
@@ -130,7 +130,7 @@ describe("<CardGroupsAccordion />", () => {
130
130
  <CardGroupsAccordion
131
131
  groups={groups_any_cards_without_group}
132
132
  cardComponent={cardComponent}
133
- />
133
+ />,
134
134
  );
135
135
  await waitForLoad(rendered);
136
136
 
@@ -84,7 +84,7 @@ describe("<CatalogMenu />", () => {
84
84
  const activeMenus = rendered.container.querySelectorAll("a.active");
85
85
  expect(activeMenus.length).toBe(1);
86
86
  expect(
87
- within(activeMenus[0]).getByText("metadata.region")
87
+ within(activeMenus[0]).getByText("metadata.region"),
88
88
  ).toBeInTheDocument();
89
89
  });
90
90
  });
@@ -4,7 +4,7 @@ import { DateTime } from "..";
4
4
  describe("<DateTime />", () => {
5
5
  it("matches the latest snapshot", () => {
6
6
  const { container } = render(
7
- <DateTime value="2018-06-27T07:32:53.154377Z" />
7
+ <DateTime value="2018-06-27T07:32:53.154377Z" />,
8
8
  );
9
9
  expect(container).toMatchSnapshot();
10
10
  });
@@ -159,7 +159,7 @@ describe("<DomainSearchFilter />", () => {
159
159
  const rendered = render(
160
160
  <div onKeyDown={onKeyDown}>
161
161
  <DomainSearchFilter {...props} />
162
- </div>
162
+ </div>,
163
163
  );
164
164
  const searchInput = rendered.container.querySelector(".search input");
165
165
 
@@ -176,7 +176,7 @@ describe("<DomainSearchFilter />", () => {
176
176
  const rendered = render(
177
177
  <div onClick={onClick}>
178
178
  <DomainSearchFilter {...props} />
179
- </div>
179
+ </div>,
180
180
  );
181
181
  const searchInput = rendered.container.querySelector(".search input");
182
182
 
@@ -26,7 +26,7 @@ describe("<DomainSearchFilterItem />", () => {
26
26
 
27
27
  it("matches snapshot when selected is true", () => {
28
28
  const rendered = render(
29
- <DomainSearchFilterItem {...getProps()} selected={true} />
29
+ <DomainSearchFilterItem {...getProps()} selected={true} />,
30
30
  );
31
31
  expect(rendered.container).toMatchSnapshot();
32
32
  });
@@ -37,7 +37,7 @@ describe("<DomainSearchFilterItem />", () => {
37
37
  {...getProps()}
38
38
  selected={false}
39
39
  partialSelected={true}
40
- />
40
+ />,
41
41
  );
42
42
  expect(rendered.container).toMatchSnapshot();
43
43
  });
@@ -76,14 +76,14 @@ describe("<DomainSearchFilterItem />", () => {
76
76
 
77
77
  it("does not render chevron and toggle icons when canOpen is false", () => {
78
78
  const rendered = render(
79
- <DomainSearchFilterItem {...getProps({ canOpen: false })} />
79
+ <DomainSearchFilterItem {...getProps({ canOpen: false })} />,
80
80
  );
81
81
 
82
82
  expect(
83
- rendered.container.querySelector(".chevron.right.icon")
83
+ rendered.container.querySelector(".chevron.right.icon"),
84
84
  ).not.toBeInTheDocument();
85
85
  expect(
86
- rendered.container.querySelector(".toggle-children")
86
+ rendered.container.querySelector(".toggle-children"),
87
87
  ).not.toBeInTheDocument();
88
88
  });
89
89
 
@@ -96,11 +96,11 @@ describe("<DomainSearchFilterItem />", () => {
96
96
  };
97
97
  const rendered = render(
98
98
  <DomainSearchFilterItem {...getProps({ canOpen: true })} />,
99
- { messages }
99
+ { messages },
100
100
  );
101
101
 
102
102
  expect(
103
- rendered.container.querySelector(".toggle-children")
103
+ rendered.container.querySelector(".toggle-children"),
104
104
  ).not.toBeInTheDocument();
105
105
  });
106
106
  });
@@ -15,7 +15,7 @@ describe("<DomainSelector />", () => {
15
15
  const props = { action, onChange: jest.fn(), className: "test className" };
16
16
  const { container, queryByText } = render(
17
17
  <DomainSelector {...props} />,
18
- renderOpts
18
+ renderOpts,
19
19
  );
20
20
  await waitFor(() => {
21
21
  expect(queryByText(/fooDomain/)).toBeInTheDocument();
@@ -32,7 +32,7 @@ describe("<DomainSelector />", () => {
32
32
  };
33
33
  const { container, queryByText } = render(
34
34
  <DomainSelector {...props} />,
35
- renderOpts
35
+ renderOpts,
36
36
  );
37
37
  await waitFor(() => {
38
38
  expect(queryByText(/fooDomain/)).toBeInTheDocument();
@@ -44,7 +44,7 @@ describe("<DomainSelector />", () => {
44
44
  const props = { action, onChange: jest.fn(), multiple: true };
45
45
  const { getByText, getByRole } = render(
46
46
  <DomainSelector {...props} />,
47
- renderOpts
47
+ renderOpts,
48
48
  );
49
49
 
50
50
  await waitFor(() => {
@@ -40,7 +40,7 @@ describe("<DropdownMenuItem />", () => {
40
40
 
41
41
  await waitFor(() => {
42
42
  expect(
43
- container.querySelector('[class="chevron down icon"]')
43
+ container.querySelector('[class="chevron down icon"]'),
44
44
  ).toBeTruthy();
45
45
  });
46
46
  });
@@ -50,7 +50,7 @@ describe("<DropdownMenuItem />", () => {
50
50
  <DropdownMenuItem {...props} />,
51
51
  {
52
52
  messages: {},
53
- }
53
+ },
54
54
  );
55
55
 
56
56
  userEvent.click(getByRole("option"));
@@ -63,7 +63,7 @@ describe("<DropdownMenuItem />", () => {
63
63
 
64
64
  await waitFor(() => {
65
65
  expect(
66
- container.querySelector('[class="check square outline icon"]')
66
+ container.querySelector('[class="check square outline icon"]'),
67
67
  ).toBeTruthy();
68
68
  });
69
69
  });
@@ -55,12 +55,12 @@ describe("<FilterDropdown/>", () => {
55
55
  const selectedOption = customProps.options[6].text;
56
56
 
57
57
  const { getByRole, getAllByRole, rerender } = render(
58
- <FilterDropdown {...customProps} />
58
+ <FilterDropdown {...customProps} />,
59
59
  );
60
60
 
61
61
  expect(customProps.toggleFilterValue).toBeCalledTimes(0);
62
62
  await user.click(
63
- getByRole("option", { name: new RegExp(selectedOption, "i") })
63
+ getByRole("option", { name: new RegExp(selectedOption, "i") }),
64
64
  );
65
65
  expect(customProps.toggleFilterValue).toBeCalledWith({
66
66
  filter: props.filter,
@@ -74,7 +74,7 @@ describe("<FilterDropdown/>", () => {
74
74
  rerender(<FilterDropdown {...rerenderProps} />);
75
75
 
76
76
  expect(
77
- within(getAllByRole("option")[0]).queryByText(selectedOption)
77
+ within(getAllByRole("option")[0]).queryByText(selectedOption),
78
78
  ).not.toBeNull();
79
79
  });
80
80
 
@@ -87,14 +87,14 @@ describe("<FilterDropdown/>", () => {
87
87
  const searchText = "3";
88
88
 
89
89
  const { getByRole, queryByRole, getAllByRole } = render(
90
- <FilterDropdown {...customProps} />
90
+ <FilterDropdown {...customProps} />,
91
91
  );
92
92
  const input = getByRole("textbox");
93
93
 
94
94
  expect(
95
95
  getByRole("option", {
96
96
  name: new RegExp(customProps.options[1].text, "i"),
97
- })
97
+ }),
98
98
  ).toBeInTheDocument();
99
99
 
100
100
  await user.type(input, searchText);
@@ -102,11 +102,11 @@ describe("<FilterDropdown/>", () => {
102
102
  expect(
103
103
  queryByRole("option", {
104
104
  name: new RegExp(customProps.options[1].text, "i"),
105
- })
105
+ }),
106
106
  ).toBeNull();
107
107
 
108
108
  expect(
109
- within(getByRole("option")).getByText(`value${searchText}`)
109
+ within(getByRole("option")).getByText(`value${searchText}`),
110
110
  ).toBeInTheDocument();
111
111
 
112
112
  expect(getAllByRole("option").length).toBe(1);
@@ -124,24 +124,24 @@ describe("<FilterDropdown/>", () => {
124
124
  const searchText = "3";
125
125
 
126
126
  const { getByRole, queryByRole, getAllByRole } = render(
127
- <FilterDropdown {...customProps} />
127
+ <FilterDropdown {...customProps} />,
128
128
  );
129
129
  const input = getByRole("textbox");
130
130
 
131
131
  await user.type(input, searchText);
132
132
 
133
133
  expect(
134
- within(getAllByRole("option")[0]).getByText(selectedOption)
134
+ within(getAllByRole("option")[0]).getByText(selectedOption),
135
135
  ).toBeInTheDocument();
136
136
 
137
137
  expect(
138
- within(getAllByRole("option")[1]).getByText(`value${searchText}`)
138
+ within(getAllByRole("option")[1]).getByText(`value${searchText}`),
139
139
  ).toBeInTheDocument();
140
140
 
141
141
  expect(
142
142
  queryByRole("option", {
143
143
  name: new RegExp(customProps.options[1].text, "i"),
144
- })
144
+ }),
145
145
  ).toBeNull();
146
146
 
147
147
  expect(getAllByRole("option").length).toBe(2);