@openmrs/esm-patient-tests-app 11.3.1-patch.9310 → 11.3.1-patch.9508

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 (170) hide show
  1. package/.turbo/turbo-build.log +19 -22
  2. package/dist/1119.js +1 -1
  3. package/dist/1197.js +1 -1
  4. package/dist/{6231.js → 1477.js} +1 -1
  5. package/dist/1477.js.map +1 -0
  6. package/dist/1638.js +1 -1
  7. package/dist/1638.js.map +1 -1
  8. package/dist/1935.js +1 -0
  9. package/dist/1935.js.map +1 -0
  10. package/dist/2146.js +1 -1
  11. package/dist/2690.js +1 -1
  12. package/dist/3099.js +1 -1
  13. package/dist/34.js +1 -0
  14. package/dist/34.js.map +1 -0
  15. package/dist/3509.js +1 -1
  16. package/dist/3509.js.map +1 -1
  17. package/dist/3584.js +1 -1
  18. package/dist/4055.js +1 -1
  19. package/dist/4132.js +1 -1
  20. package/dist/4300.js +1 -1
  21. package/dist/4335.js +1 -1
  22. package/dist/439.js +1 -0
  23. package/dist/4618.js +1 -1
  24. package/dist/4652.js +1 -1
  25. package/dist/4944.js +1 -1
  26. package/dist/5173.js +1 -1
  27. package/dist/5241.js +1 -1
  28. package/dist/5442.js +1 -1
  29. package/dist/5661.js +1 -1
  30. package/dist/5670.js +1 -1
  31. package/dist/6022.js +1 -1
  32. package/dist/6113.js +1 -0
  33. package/dist/6113.js.map +1 -0
  34. package/dist/6301.js +1 -1
  35. package/dist/6301.js.map +1 -1
  36. package/dist/6468.js +1 -1
  37. package/dist/6589.js +1 -0
  38. package/dist/6679.js +1 -1
  39. package/dist/6840.js +1 -1
  40. package/dist/6859.js +1 -1
  41. package/dist/7097.js +1 -1
  42. package/dist/7159.js +1 -1
  43. package/dist/7202.js +1 -0
  44. package/dist/7202.js.map +1 -0
  45. package/dist/723.js +1 -1
  46. package/dist/7617.js +1 -1
  47. package/dist/790.js +1 -1
  48. package/dist/790.js.map +1 -1
  49. package/dist/795.js +1 -1
  50. package/dist/8163.js +1 -1
  51. package/dist/8349.js +1 -1
  52. package/dist/8371.js +1 -0
  53. package/dist/8555.js +2 -0
  54. package/dist/8555.js.map +1 -0
  55. package/dist/8618.js +1 -1
  56. package/dist/890.js +1 -1
  57. package/dist/9214.js +1 -1
  58. package/dist/9538.js +1 -1
  59. package/dist/9569.js +1 -1
  60. package/dist/986.js +1 -1
  61. package/dist/9879.js +1 -1
  62. package/dist/9895.js +1 -1
  63. package/dist/9900.js +1 -1
  64. package/dist/9913.js +1 -1
  65. package/dist/main.js +1 -1
  66. package/dist/main.js.map +1 -1
  67. package/dist/openmrs-esm-patient-tests-app.js +1 -1
  68. package/dist/openmrs-esm-patient-tests-app.js.buildmanifest.json +302 -211
  69. package/dist/openmrs-esm-patient-tests-app.js.map +1 -1
  70. package/dist/routes.json +1 -1
  71. package/package.json +2 -2
  72. package/src/edit-test-results/modal/edit-lab-results.modal.tsx +2 -2
  73. package/src/index.ts +1 -1
  74. package/src/routes.json +4 -3
  75. package/src/test-orders/add-test-order/add-test-order.test.tsx +44 -21
  76. package/src/test-orders/add-test-order/add-test-order.workspace.tsx +152 -21
  77. package/src/test-orders/add-test-order/test-order-form.component.tsx +60 -68
  78. package/src/test-orders/add-test-order/test-order.ts +3 -3
  79. package/src/test-orders/add-test-order/test-type-search.component.tsx +60 -28
  80. package/src/test-orders/api.ts +2 -6
  81. package/src/test-orders/lab-order-basket-panel/lab-icon.component.tsx +27 -0
  82. package/src/test-orders/lab-order-basket-panel/lab-order-basket-item-tile.component.tsx +1 -1
  83. package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.extension.tsx +95 -30
  84. package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.scss +26 -11
  85. package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.test.tsx +12 -10
  86. package/src/test-results/filter/filter-context.test.tsx +556 -0
  87. package/src/test-results/filter/filter-context.tsx +1 -1
  88. package/src/test-results/filter/filter-reducer.test.ts +540 -0
  89. package/src/test-results/filter/filter-reducer.ts +1 -1
  90. package/src/test-results/filter/filter-set.component.tsx +75 -48
  91. package/src/test-results/filter/filter-set.test.tsx +694 -0
  92. package/src/test-results/filter/filter-types.ts +5 -1
  93. package/src/test-results/grouped-timeline/grid.component.tsx +4 -2
  94. package/src/test-results/grouped-timeline/grouped-timeline.component.tsx +20 -22
  95. package/src/test-results/grouped-timeline/grouped-timeline.test.tsx +3 -2
  96. package/src/test-results/grouped-timeline/reference-range-helpers.test.ts +37 -1
  97. package/src/test-results/grouped-timeline/reference-range-helpers.ts +50 -1
  98. package/src/test-results/grouped-timeline/timeline-data-group.component.tsx +4 -4
  99. package/src/test-results/grouped-timeline/useObstreeData.test.ts +471 -0
  100. package/src/test-results/grouped-timeline/useObstreeData.ts +37 -4
  101. package/src/test-results/individual-results-table/individual-results-table.component.tsx +2 -7
  102. package/src/test-results/individual-results-table-tablet/individual-results-table-tablet.component.tsx +3 -3
  103. package/src/test-results/individual-results-table-tablet/lab-set-panel.component.tsx +2 -5
  104. package/src/test-results/individual-results-table-tablet/usePanelData.tsx +40 -26
  105. package/src/test-results/loadPatientTestData/helpers.ts +29 -12
  106. package/src/test-results/loadPatientTestData/usePatientResultsData.ts +18 -7
  107. package/src/test-results/overview/external-overview.extension.tsx +1 -2
  108. package/src/test-results/print-modal/print-modal.extension.tsx +1 -1
  109. package/src/test-results/results-viewer/results-viewer.extension.tsx +8 -4
  110. package/src/test-results/tree-view/tree-view.component.tsx +18 -5
  111. package/src/test-results/tree-view/tree-view.test.tsx +119 -2
  112. package/src/test-results/trendline/trendline.component.tsx +88 -52
  113. package/src/test-results/ui-elements/{resetFiltersEmptyState → reset-filters-empty-state}/filter-empty-data-illustration.tsx +2 -2
  114. package/src/test-results/ui-elements/{resetFiltersEmptyState → reset-filters-empty-state}/filter-empty-state.component.tsx +5 -6
  115. package/src/types.ts +9 -0
  116. package/translations/am.json +3 -4
  117. package/translations/ar.json +3 -4
  118. package/translations/ar_SY.json +3 -4
  119. package/translations/bn.json +3 -4
  120. package/translations/cs.json +119 -0
  121. package/translations/de.json +3 -4
  122. package/translations/en.json +3 -4
  123. package/translations/en_US.json +3 -4
  124. package/translations/es.json +3 -4
  125. package/translations/es_MX.json +3 -4
  126. package/translations/fr.json +3 -4
  127. package/translations/he.json +3 -4
  128. package/translations/hi.json +3 -4
  129. package/translations/hi_IN.json +3 -4
  130. package/translations/id.json +3 -4
  131. package/translations/it.json +3 -4
  132. package/translations/ka.json +3 -4
  133. package/translations/km.json +3 -4
  134. package/translations/ku.json +3 -4
  135. package/translations/ky.json +3 -4
  136. package/translations/lg.json +3 -4
  137. package/translations/ne.json +3 -4
  138. package/translations/pl.json +3 -4
  139. package/translations/pt.json +3 -4
  140. package/translations/pt_BR.json +3 -4
  141. package/translations/qu.json +3 -4
  142. package/translations/ro_RO.json +3 -4
  143. package/translations/ru_RU.json +3 -4
  144. package/translations/si.json +3 -4
  145. package/translations/sq.json +119 -0
  146. package/translations/sw.json +3 -4
  147. package/translations/sw_KE.json +3 -4
  148. package/translations/tr.json +3 -4
  149. package/translations/tr_TR.json +3 -4
  150. package/translations/uk.json +3 -4
  151. package/translations/uz.json +3 -4
  152. package/translations/uz@Latn.json +3 -4
  153. package/translations/uz_UZ.json +3 -4
  154. package/translations/vi.json +3 -4
  155. package/translations/zh.json +3 -4
  156. package/translations/zh_CN.json +3 -4
  157. package/translations/zh_TW.json +119 -0
  158. package/dist/1479.js +0 -1
  159. package/dist/1479.js.map +0 -1
  160. package/dist/5348.js +0 -1
  161. package/dist/5348.js.map +0 -1
  162. package/dist/6231.js.map +0 -1
  163. package/dist/9540.js +0 -2
  164. package/dist/9540.js.map +0 -1
  165. package/dist/9838.js +0 -1
  166. package/dist/9838.js.map +0 -1
  167. package/src/test-orders/add-test-order/add-test-order.component.tsx +0 -125
  168. package/src/test-orders/add-test-order/exported-add-test-order.workspace.tsx +0 -30
  169. /package/dist/{9540.js.LICENSE.txt → 8555.js.LICENSE.txt} +0 -0
  170. /package/src/test-results/ui-elements/{resetFiltersEmptyState/index.scss → reset-filters-empty-state/filter-empty-state.scss} +0 -0
@@ -2,25 +2,38 @@ import React, { type ComponentProps, useCallback, useEffect, useMemo, useState }
2
2
  import classNames from 'classnames';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { Button, Tile } from '@carbon/react';
5
- import { AddIcon, ChevronDownIcon, ChevronUpIcon, useLayoutType, useConfig, MaybeIcon } from '@openmrs/esm-framework';
6
5
  import {
7
- type OrderBasketExtensionProps,
8
- useOrderBasket,
9
- useOrderType,
10
- type TestOrderBasketItem,
11
- } from '@openmrs/esm-patient-common-lib';
6
+ AddIcon,
7
+ closeWorkspace,
8
+ ChevronDownIcon,
9
+ ChevronUpIcon,
10
+ useLayoutType,
11
+ useConfig,
12
+ MaybeIcon,
13
+ launchWorkspace,
14
+ useWorkspaces,
15
+ type Visit,
16
+ } from '@openmrs/esm-framework';
17
+ import { type OrderBasketItem, useOrderBasket, useOrderType } from '@openmrs/esm-patient-common-lib';
12
18
  import type { ConfigObject } from '../../config-schema';
19
+ import type { TestOrderBasketItem } from '../../types';
13
20
  import { LabOrderBasketItemTile } from './lab-order-basket-item-tile.component';
14
21
  import { prepTestOrderPostData } from '../api';
22
+ import LabIcon from './lab-icon.component';
15
23
  import styles from './lab-order-basket-panel.scss';
16
24
 
25
+ interface OrderBasketSlotProps {
26
+ patientUuid: string;
27
+ patient: fhir.Patient;
28
+ visitContext: Visit;
29
+ mutateVisitContext: () => void;
30
+ }
31
+
17
32
  /**
18
- * The extension is slotted into order-basket-slot in the main Order Basket workspace by default.
19
- * It renders the "Add +" button for lab orders, and lists pending lab orders in the order basket.
20
- *
21
33
  * Designs: https://app.zeplin.io/project/60d59321e8100b0324762e05/screen/648c44d9d4052c613e7f23da
34
+ * Slotted into order-basket-slot by default
22
35
  */
23
- export function LabOrderBasketPanelExtension({ patient, launchLabOrderForm }: OrderBasketExtensionProps) {
36
+ const LabOrderBasketPanelExtension: React.FC<OrderBasketSlotProps> = ({ patient }) => {
24
37
  const { orders, additionalTestOrderTypes } = useConfig<ConfigObject>();
25
38
  const { t } = useTranslation();
26
39
  const allOrderTypes: ConfigObject['additionalTestOrderTypes'] = [
@@ -36,29 +49,35 @@ export function LabOrderBasketPanelExtension({ patient, launchLabOrderForm }: Or
36
49
  return (
37
50
  <>
38
51
  {allOrderTypes.map((orderTypeConfig) => (
39
- <LabOrderBasketPanel
40
- key={orderTypeConfig.orderTypeUuid}
41
- patient={patient}
42
- {...orderTypeConfig}
43
- launchLabOrderForm={launchLabOrderForm}
44
- />
52
+ <LabOrderBasketPanel patient={patient} key={orderTypeConfig.orderTypeUuid} {...orderTypeConfig} />
45
53
  ))}
46
54
  </>
47
55
  );
48
- }
56
+ };
57
+
58
+ export const WORKSPACES = {
59
+ TEST_RESULTS_FORM: 'test-results-form-workspace',
60
+ ORDER_BASKET: 'order-basket',
61
+ };
49
62
 
50
63
  type OrderTypeConfig = ConfigObject['additionalTestOrderTypes'][0];
51
64
 
52
65
  interface LabOrderBasketPanelProps extends OrderTypeConfig {
53
66
  patient: fhir.Patient;
54
- launchLabOrderForm(orderTypeUuid: string, order?: TestOrderBasketItem): void;
55
67
  }
56
68
 
57
- function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrderForm }: LabOrderBasketPanelProps) {
69
+ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient }: LabOrderBasketPanelProps) {
58
70
  const { t } = useTranslation();
71
+ type WorkSpaceType = (typeof WORKSPACES)[keyof typeof WORKSPACES];
59
72
  const isTablet = useLayoutType() === 'tablet';
73
+ const responsiveSize = isTablet ? 'md' : 'sm';
74
+ const isDefaultLabOrder = icon === 'omrs-icon-lab-order';
60
75
  const { orderType, isLoadingOrderType } = useOrderType(orderTypeUuid);
61
-
76
+ const { workspaces = [{ name: WORKSPACES.ORDER_BASKET, additionalProps: {} }] } = useWorkspaces();
77
+ const [prevWorkSpace, setPrevWorkSpace] = useState(workspaces[0]?.name);
78
+ const [prevOrder, setPrevOrder] = useState(
79
+ workspaces[0]?.name === WORKSPACES.TEST_RESULTS_FORM ? workspaces[0].additionalProps['order'] : null,
80
+ );
62
81
  const { orders, setOrders } = useOrderBasket<TestOrderBasketItem>(patient, orderTypeUuid, prepTestOrderPostData);
63
82
  const [isExpanded, setIsExpanded] = useState(orders.length > 0);
64
83
  const {
@@ -96,6 +115,41 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
96
115
  discontinuedOrderBasketItems,
97
116
  };
98
117
  }, [orders]);
118
+ const isWorkSpaceType = useCallback((value: string): value is WorkSpaceType => {
119
+ return Object.values(WORKSPACES).includes(value as WorkSpaceType);
120
+ }, []);
121
+
122
+ const openNewLabForm = useCallback(() => {
123
+ closeWorkspace(isWorkSpaceType(prevWorkSpace) ? prevWorkSpace : WORKSPACES.ORDER_BASKET, {
124
+ ignoreChanges: true,
125
+ onWorkspaceClose: () =>
126
+ launchWorkspace('add-lab-order', {
127
+ orderTypeUuid: orderTypeUuid,
128
+ prevWorkSpace: prevWorkSpace,
129
+ isWorkSpaceType: isWorkSpaceType,
130
+ prevOrder: prevOrder,
131
+ }),
132
+ closeWorkspaceGroup: false,
133
+ });
134
+ }, [orderTypeUuid, isWorkSpaceType, prevOrder, prevWorkSpace]);
135
+
136
+ const openEditLabForm = useCallback(
137
+ (order: OrderBasketItem) => {
138
+ closeWorkspace(isWorkSpaceType(prevWorkSpace) ? prevWorkSpace : WORKSPACES.ORDER_BASKET, {
139
+ ignoreChanges: true,
140
+ onWorkspaceClose: () =>
141
+ launchWorkspace('add-lab-order', {
142
+ order,
143
+ orderTypeUuid: orderTypeUuid,
144
+ prevWorkSpace: prevWorkSpace,
145
+ isWorkSpaceType: isWorkSpaceType,
146
+ prevOrder: prevOrder,
147
+ }),
148
+ closeWorkspaceGroup: false,
149
+ });
150
+ },
151
+ [orderTypeUuid, isWorkSpaceType, prevOrder, prevWorkSpace],
152
+ );
99
153
 
100
154
  const removeLabOrder = useCallback(
101
155
  (order: TestOrderBasketItem) => {
@@ -120,19 +174,29 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
120
174
  [styles.collapsedTile]: !isExpanded,
121
175
  })}
122
176
  >
123
- <div className={styles.container}>
177
+ <div className={classNames(isTablet ? styles.tabletContainer : styles.desktopContainer)}>
124
178
  <div className={styles.iconAndLabel}>
125
- <MaybeIcon icon={icon ? icon : 'omrs-icon-generic-order-type'} size={isTablet ? 40 : 24} />
126
- <h4 className={styles.heading}>{`${label ? t(label) : orderType?.display} (${orders.length})`}</h4>
179
+ {isDefaultLabOrder ? (
180
+ <LabIcon isTablet={isTablet} />
181
+ ) : (
182
+ <MaybeIcon icon={icon ? icon : 'omrs-icon-generic-order-type'} size={isTablet ? 40 : 24} />
183
+ )}
184
+ <h4 className={styles.heading}>{`${
185
+ isWorkSpaceType(prevWorkSpace) && prevWorkSpace === WORKSPACES.ORDER_BASKET
186
+ ? label
187
+ ? t(label)
188
+ : orderType?.display
189
+ : t('tests', 'Tests')
190
+ } (${orders.length})`}</h4>
127
191
  </div>
128
192
  <div className={styles.buttonContainer}>
129
193
  <Button
130
194
  className={styles.addButton}
131
195
  iconDescription="Add lab order"
132
196
  kind="ghost"
133
- onClick={() => launchLabOrderForm(orderTypeUuid)}
197
+ onClick={openNewLabForm}
134
198
  renderIcon={(props: ComponentProps<typeof AddIcon>) => <AddIcon size={16} {...props} />}
135
- size={isTablet ? 'md' : 'sm'}
199
+ size={responsiveSize}
136
200
  >
137
201
  {t('add', 'Add')}
138
202
  </Button>
@@ -146,6 +210,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
146
210
  renderIcon={(props: ComponentProps<typeof ChevronUpIcon>) =>
147
211
  isExpanded ? <ChevronUpIcon size={16} {...props} /> : <ChevronDownIcon size={16} {...props} />
148
212
  }
213
+ size={responsiveSize}
149
214
  >
150
215
  {t('add', 'Add')}
151
216
  </Button>
@@ -160,7 +225,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
160
225
  {incompleteOrderBasketItems.map((order) => (
161
226
  <LabOrderBasketItemTile
162
227
  key={order.uuid}
163
- onItemClick={() => launchLabOrderForm(orderTypeUuid, order)}
228
+ onItemClick={() => openEditLabForm(order)}
164
229
  onRemoveClick={() => removeLabOrder(order)}
165
230
  orderBasketItem={order}
166
231
  />
@@ -172,7 +237,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
172
237
  {newOrderBasketItems.map((order) => (
173
238
  <LabOrderBasketItemTile
174
239
  key={order.uuid}
175
- onItemClick={() => launchLabOrderForm(orderTypeUuid, order)}
240
+ onItemClick={() => openEditLabForm(order)}
176
241
  onRemoveClick={() => removeLabOrder(order)}
177
242
  orderBasketItem={order}
178
243
  />
@@ -185,7 +250,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
185
250
  {renewedOrderBasketItems.map((order) => (
186
251
  <LabOrderBasketItemTile
187
252
  key={order.uuid}
188
- onItemClick={() => launchLabOrderForm(orderTypeUuid, order)}
253
+ onItemClick={() => openEditLabForm(order)}
189
254
  onRemoveClick={() => removeLabOrder(order)}
190
255
  orderBasketItem={order}
191
256
  />
@@ -198,7 +263,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
198
263
  {revisedOrderBasketItems.map((order) => (
199
264
  <LabOrderBasketItemTile
200
265
  key={order.uuid}
201
- onItemClick={() => launchLabOrderForm(orderTypeUuid, order)}
266
+ onItemClick={() => openEditLabForm(order)}
202
267
  onRemoveClick={() => removeLabOrder(order)}
203
268
  orderBasketItem={order}
204
269
  />
@@ -211,7 +276,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
211
276
  {discontinuedOrderBasketItems.map((order) => (
212
277
  <LabOrderBasketItemTile
213
278
  key={order.uuid}
214
- onItemClick={() => launchLabOrderForm(orderTypeUuid, order)}
279
+ onItemClick={() => openEditLabForm(order)}
215
280
  onRemoveClick={() => removeLabOrder(order)}
216
281
  orderBasketItem={order}
217
282
  />
@@ -3,21 +3,44 @@
3
3
  @use '@carbon/type';
4
4
  @use '@openmrs/esm-styleguide/src/vars' as *;
5
5
 
6
+ .desktopContainer {
7
+ background-color: colors.$gray-10;
8
+ display: flex;
9
+ justify-content: space-between;
10
+ align-items: center;
11
+ text-align: left;
12
+ }
13
+
14
+ .tabletContainer {
15
+ @extend .desktopContainer;
16
+ background-color: colors.$white-0;
17
+ }
18
+
6
19
  .tile:not(:first-child) {
7
20
  margin-top: 2rem;
8
21
  }
9
22
 
10
23
  .desktopTile {
24
+ position: relative;
11
25
  border-left: layout.$spacing-02 solid colors.$purple-70;
12
- background-color: $ui-02;
13
- border-top: 1px solid colors.$purple-20;
26
+ background-color: colors.$white-0;
14
27
  border-right: none;
15
28
  padding: 0;
29
+
30
+ &::after {
31
+ content: '';
32
+ position: absolute;
33
+ top: 0;
34
+ left: 0;
35
+ right: 0;
36
+ height: 1px;
37
+ background-color: colors.$purple-20;
38
+ }
16
39
  }
17
40
 
18
41
  .tabletTile {
19
42
  @extend .desktopTile;
20
- border-top: 1px solid #612ebd;
43
+ border-top: 1px solid colors.$purple-20;
21
44
  }
22
45
 
23
46
  .collapsedTile {
@@ -33,14 +56,6 @@
33
56
  border-bottom: 1px solid $grey-2;
34
57
  }
35
58
 
36
- .container {
37
- background-color: $ui-02;
38
- display: flex;
39
- justify-content: space-between;
40
- align-items: center;
41
- text-align: left;
42
- }
43
-
44
59
  .desktopTile .container {
45
60
  h4 {
46
61
  @include type.type-style('heading-compact-02');
@@ -2,16 +2,17 @@ import React from 'react';
2
2
  import userEvent from '@testing-library/user-event';
3
3
  import { screen, render } from '@testing-library/react';
4
4
  import { useOrderType } from '@openmrs/esm-patient-common-lib';
5
- import { getDefaultsFromConfigSchema, useConfig } from '@openmrs/esm-framework';
6
- import type { OrderBasketExtensionProps, TestOrderBasketItem } from '@openmrs/esm-patient-common-lib';
5
+ import { getDefaultsFromConfigSchema, useConfig, useWorkspaces, type WorkspacesInfo } from '@openmrs/esm-framework';
7
6
  import { type ConfigObject, configSchema } from '../../config-schema';
8
- import LabOrderBasketPanel from './lab-order-basket-panel.extension';
7
+ import { type TestOrderBasketItem } from '../../types';
9
8
  import { mockPatient } from 'tools';
10
- import { mockVisit } from '__mocks__';
9
+ import LabOrderBasketPanel from './lab-order-basket-panel.extension';
11
10
 
12
11
  const mockUseOrderBasket = jest.fn();
13
12
  const mockUseConfig = jest.mocked(useConfig<ConfigObject>);
14
13
  const mockUseOrderType = jest.mocked(useOrderType);
14
+ const mockUseWorkSpaces = jest.mocked(useWorkspaces);
15
+ const mockWorkSpacesInfo = {} as WorkspacesInfo;
15
16
 
16
17
  jest.mock('@openmrs/esm-patient-common-lib', () => ({
17
18
  ...jest.requireActual('@openmrs/esm-patient-common-lib'),
@@ -38,14 +39,17 @@ mockUseOrderType.mockReturnValue({
38
39
  errorFetchingOrderType: undefined,
39
40
  });
40
41
 
41
- const testProps: OrderBasketExtensionProps = {
42
+ const testProps = {
43
+ patientUuid: mockPatient.id,
42
44
  patient: mockPatient,
43
- launchDrugOrderForm: jest.fn(),
44
- launchLabOrderForm: jest.fn(),
45
- launchGeneralOrderForm: jest.fn(),
45
+ visitContext: null,
46
+ mutateVisitContext: null,
46
47
  };
47
48
 
48
49
  describe('LabOrderBasketPanel', () => {
50
+ beforeEach(() => {
51
+ mockUseWorkSpaces.mockReturnValue(mockWorkSpacesInfo);
52
+ });
49
53
  test('renders an empty state when no items are selected in the order basket', () => {
50
54
  mockUseOrderBasket.mockReturnValue({ orders: [] });
51
55
  render(<LabOrderBasketPanel {...testProps} />);
@@ -65,7 +69,6 @@ describe('LabOrderBasketPanel', () => {
65
69
  display: 'HIV VIRAL LOAD',
66
70
  urgency: 'ROUTINE',
67
71
  uuid: 'order-uuid-1',
68
- visit: mockVisit,
69
72
  },
70
73
  {
71
74
  action: 'NEW',
@@ -76,7 +79,6 @@ describe('LabOrderBasketPanel', () => {
76
79
  display: 'CD4 COUNT',
77
80
  urgency: 'STAT',
78
81
  uuid: 'order-uuid-2',
79
- visit: mockVisit,
80
82
  },
81
83
  ];
82
84
  let orders = [...labs];