@openmrs/esm-patient-tests-app 11.3.1-patch.9064 → 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.
- package/.turbo/turbo-build.log +22 -22
- package/dist/1119.js +1 -1
- package/dist/1197.js +1 -1
- package/dist/{6231.js → 1477.js} +1 -1
- package/dist/1477.js.map +1 -0
- package/dist/1638.js +1 -1
- package/dist/1638.js.map +1 -1
- package/dist/1935.js +1 -1
- package/dist/1935.js.map +1 -1
- package/dist/2146.js +1 -1
- package/dist/2690.js +1 -1
- package/dist/3099.js +1 -1
- package/dist/34.js +1 -1
- package/dist/34.js.map +1 -1
- package/dist/3509.js +1 -1
- package/dist/3509.js.map +1 -1
- package/dist/3584.js +1 -1
- package/dist/4055.js +1 -1
- package/dist/4132.js +1 -1
- package/dist/4300.js +1 -1
- package/dist/4335.js +1 -1
- package/dist/439.js +1 -0
- package/dist/4618.js +1 -1
- package/dist/4652.js +1 -1
- package/dist/4944.js +1 -1
- package/dist/5173.js +1 -1
- package/dist/5241.js +1 -1
- package/dist/5442.js +1 -1
- package/dist/5661.js +1 -1
- package/dist/5670.js +1 -1
- package/dist/5670.js.map +1 -1
- package/dist/6022.js +1 -1
- package/dist/6113.js +1 -0
- package/dist/6113.js.map +1 -0
- package/dist/6301.js +1 -1
- package/dist/6301.js.map +1 -1
- package/dist/6336.js +1 -0
- package/dist/6336.js.map +1 -0
- package/dist/6468.js +1 -1
- package/dist/6589.js +1 -0
- package/dist/6679.js +1 -1
- package/dist/6840.js +1 -1
- package/dist/6859.js +1 -1
- package/dist/7097.js +1 -1
- package/dist/7159.js +1 -1
- package/dist/7202.js +1 -0
- package/dist/7202.js.map +1 -0
- package/dist/723.js +1 -1
- package/dist/7617.js +1 -1
- package/dist/790.js +1 -1
- package/dist/790.js.map +1 -1
- package/dist/795.js +1 -1
- package/dist/8163.js +1 -1
- package/dist/8307.js +2 -0
- package/dist/8307.js.map +1 -0
- package/dist/8349.js +1 -1
- package/dist/8371.js +1 -0
- package/dist/8555.js +2 -0
- package/dist/8555.js.map +1 -0
- package/dist/8618.js +1 -1
- package/dist/890.js +1 -1
- package/dist/9214.js +1 -1
- package/dist/9538.js +1 -1
- package/dist/9569.js +1 -1
- package/dist/986.js +1 -1
- package/dist/9879.js +1 -1
- package/dist/9895.js +1 -1
- package/dist/9900.js +1 -1
- package/dist/9913.js +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-patient-tests-app.js +1 -1
- package/dist/openmrs-esm-patient-tests-app.js.buildmanifest.json +319 -249
- package/dist/openmrs-esm-patient-tests-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +3 -3
- package/src/edit-test-results/modal/edit-lab-results.modal.tsx +6 -2
- package/src/index.ts +1 -1
- package/src/routes.json +2 -2
- package/src/test-orders/add-test-order/add-test-order.test.tsx +13 -10
- package/src/test-orders/add-test-order/add-test-order.workspace.tsx +43 -7
- package/src/test-orders/add-test-order/test-order-form.component.tsx +41 -7
- package/src/test-orders/add-test-order/test-type-search.component.tsx +56 -8
- package/src/test-orders/lab-order-basket-panel/lab-icon.component.tsx +27 -0
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.extension.tsx +62 -15
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.scss +26 -11
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.test.tsx +18 -5
- package/src/test-results/filter/filter-context.test.tsx +556 -0
- package/src/test-results/filter/filter-context.tsx +1 -1
- package/src/test-results/filter/filter-reducer.test.ts +540 -0
- package/src/test-results/filter/filter-reducer.ts +1 -1
- package/src/test-results/filter/filter-set.component.tsx +75 -48
- package/src/test-results/filter/filter-set.test.tsx +694 -0
- package/src/test-results/filter/filter-types.ts +24 -1
- package/src/test-results/grouped-timeline/grid.component.tsx +4 -2
- package/src/test-results/grouped-timeline/grouped-timeline.component.tsx +20 -22
- package/src/test-results/grouped-timeline/grouped-timeline.test.tsx +52 -2
- package/src/test-results/grouped-timeline/reference-range-helpers.test.ts +308 -0
- package/src/test-results/grouped-timeline/reference-range-helpers.ts +161 -0
- package/src/test-results/grouped-timeline/timeline-data-group.component.tsx +13 -6
- package/src/test-results/grouped-timeline/useObstreeData.test.ts +471 -0
- package/src/test-results/grouped-timeline/useObstreeData.ts +108 -13
- package/src/test-results/individual-results-table/individual-results-table.component.tsx +18 -6
- package/src/test-results/individual-results-table/individual-results-table.test.tsx +65 -3
- package/src/test-results/individual-results-table-tablet/helper.tsx +8 -2
- package/src/test-results/individual-results-table-tablet/individual-results-table-tablet.component.tsx +5 -5
- package/src/test-results/individual-results-table-tablet/lab-set-panel.component.tsx +2 -1
- package/src/test-results/individual-results-table-tablet/usePanelData.tsx +40 -26
- package/src/test-results/loadPatientTestData/helpers.test.ts +834 -0
- package/src/test-results/loadPatientTestData/helpers.ts +143 -12
- package/src/test-results/loadPatientTestData/loadPatientData.ts +66 -11
- package/src/test-results/loadPatientTestData/usePatientResultsData.ts +20 -9
- package/src/test-results/overview/common-datatable.component.tsx +1 -1
- package/src/test-results/overview/external-overview.extension.tsx +1 -2
- package/src/test-results/overview/useOverviewData.ts +22 -10
- package/src/test-results/print-modal/print-modal.extension.tsx +1 -1
- package/src/test-results/results-viewer/results-viewer.extension.tsx +12 -7
- package/src/test-results/tree-view/tree-view.component.tsx +31 -8
- package/src/test-results/tree-view/tree-view.test.tsx +119 -2
- package/src/test-results/trendline/trendline-resource.tsx +48 -5
- package/src/test-results/trendline/trendline.component.tsx +88 -52
- package/src/test-results/ui-elements/{resetFiltersEmptyState → reset-filters-empty-state}/filter-empty-data-illustration.tsx +2 -2
- package/src/test-results/ui-elements/{resetFiltersEmptyState → reset-filters-empty-state}/filter-empty-state.component.tsx +5 -6
- package/src/types.ts +20 -1
- package/translations/am.json +3 -4
- package/translations/ar.json +3 -4
- package/translations/ar_SY.json +3 -4
- package/translations/bn.json +3 -4
- package/translations/cs.json +119 -0
- package/translations/de.json +3 -4
- package/translations/en.json +3 -2
- package/translations/en_US.json +3 -4
- package/translations/es.json +3 -4
- package/translations/es_MX.json +3 -4
- package/translations/fr.json +5 -6
- package/translations/he.json +3 -4
- package/translations/hi.json +3 -4
- package/translations/hi_IN.json +3 -4
- package/translations/id.json +3 -4
- package/translations/it.json +3 -4
- package/translations/ka.json +3 -4
- package/translations/km.json +3 -4
- package/translations/ku.json +3 -4
- package/translations/ky.json +3 -4
- package/translations/lg.json +3 -4
- package/translations/ne.json +3 -4
- package/translations/pl.json +3 -4
- package/translations/pt.json +3 -4
- package/translations/pt_BR.json +3 -4
- package/translations/qu.json +3 -4
- package/translations/ro_RO.json +3 -4
- package/translations/ru_RU.json +3 -4
- package/translations/si.json +3 -4
- package/translations/sq.json +119 -0
- package/translations/sw.json +3 -4
- package/translations/sw_KE.json +3 -4
- package/translations/tr.json +3 -4
- package/translations/tr_TR.json +3 -4
- package/translations/uk.json +3 -4
- package/translations/uz.json +3 -4
- package/translations/uz@Latn.json +3 -4
- package/translations/uz_UZ.json +3 -4
- package/translations/vi.json +3 -4
- package/translations/zh.json +3 -4
- package/translations/zh_CN.json +3 -4
- package/translations/zh_TW.json +119 -0
- package/dist/1479.js +0 -1
- package/dist/1479.js.map +0 -1
- package/dist/2537.js +0 -1
- package/dist/2537.js.map +0 -1
- package/dist/4918.js +0 -1
- package/dist/4918.js.map +0 -1
- package/dist/5836.js +0 -2
- package/dist/5836.js.map +0 -1
- package/dist/6231.js.map +0 -1
- package/dist/7053.js +0 -2
- package/dist/7053.js.map +0 -1
- /package/dist/{7053.js.LICENSE.txt → 8307.js.LICENSE.txt} +0 -0
- /package/dist/{5836.js.LICENSE.txt → 8555.js.LICENSE.txt} +0 -0
- /package/src/test-results/ui-elements/{resetFiltersEmptyState/index.scss → reset-filters-empty-state/filter-empty-state.scss} +0 -0
|
@@ -11,18 +11,29 @@ import {
|
|
|
11
11
|
useConfig,
|
|
12
12
|
MaybeIcon,
|
|
13
13
|
launchWorkspace,
|
|
14
|
+
useWorkspaces,
|
|
15
|
+
type Visit,
|
|
14
16
|
} from '@openmrs/esm-framework';
|
|
15
17
|
import { type OrderBasketItem, useOrderBasket, useOrderType } from '@openmrs/esm-patient-common-lib';
|
|
16
18
|
import type { ConfigObject } from '../../config-schema';
|
|
17
19
|
import type { TestOrderBasketItem } from '../../types';
|
|
18
20
|
import { LabOrderBasketItemTile } from './lab-order-basket-item-tile.component';
|
|
19
21
|
import { prepTestOrderPostData } from '../api';
|
|
22
|
+
import LabIcon from './lab-icon.component';
|
|
20
23
|
import styles from './lab-order-basket-panel.scss';
|
|
21
24
|
|
|
25
|
+
interface OrderBasketSlotProps {
|
|
26
|
+
patientUuid: string;
|
|
27
|
+
patient: fhir.Patient;
|
|
28
|
+
visitContext: Visit;
|
|
29
|
+
mutateVisitContext: () => void;
|
|
30
|
+
}
|
|
31
|
+
|
|
22
32
|
/**
|
|
23
33
|
* Designs: https://app.zeplin.io/project/60d59321e8100b0324762e05/screen/648c44d9d4052c613e7f23da
|
|
34
|
+
* Slotted into order-basket-slot by default
|
|
24
35
|
*/
|
|
25
|
-
|
|
36
|
+
const LabOrderBasketPanelExtension: React.FC<OrderBasketSlotProps> = ({ patient }) => {
|
|
26
37
|
const { orders, additionalTestOrderTypes } = useConfig<ConfigObject>();
|
|
27
38
|
const { t } = useTranslation();
|
|
28
39
|
const allOrderTypes: ConfigObject['additionalTestOrderTypes'] = [
|
|
@@ -38,22 +49,36 @@ export default function LabOrderBasketPanelExtension() {
|
|
|
38
49
|
return (
|
|
39
50
|
<>
|
|
40
51
|
{allOrderTypes.map((orderTypeConfig) => (
|
|
41
|
-
<LabOrderBasketPanel key={orderTypeConfig.orderTypeUuid} {...orderTypeConfig} />
|
|
52
|
+
<LabOrderBasketPanel patient={patient} key={orderTypeConfig.orderTypeUuid} {...orderTypeConfig} />
|
|
42
53
|
))}
|
|
43
54
|
</>
|
|
44
55
|
);
|
|
45
|
-
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const WORKSPACES = {
|
|
59
|
+
TEST_RESULTS_FORM: 'test-results-form-workspace',
|
|
60
|
+
ORDER_BASKET: 'order-basket',
|
|
61
|
+
};
|
|
46
62
|
|
|
47
63
|
type OrderTypeConfig = ConfigObject['additionalTestOrderTypes'][0];
|
|
48
64
|
|
|
49
|
-
interface LabOrderBasketPanelProps extends OrderTypeConfig {
|
|
65
|
+
interface LabOrderBasketPanelProps extends OrderTypeConfig {
|
|
66
|
+
patient: fhir.Patient;
|
|
67
|
+
}
|
|
50
68
|
|
|
51
|
-
function LabOrderBasketPanel({ orderTypeUuid, label, icon }: LabOrderBasketPanelProps) {
|
|
69
|
+
function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient }: LabOrderBasketPanelProps) {
|
|
52
70
|
const { t } = useTranslation();
|
|
71
|
+
type WorkSpaceType = (typeof WORKSPACES)[keyof typeof WORKSPACES];
|
|
53
72
|
const isTablet = useLayoutType() === 'tablet';
|
|
73
|
+
const responsiveSize = isTablet ? 'md' : 'sm';
|
|
74
|
+
const isDefaultLabOrder = icon === 'omrs-icon-lab-order';
|
|
54
75
|
const { orderType, isLoadingOrderType } = useOrderType(orderTypeUuid);
|
|
55
|
-
|
|
56
|
-
const
|
|
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
|
+
);
|
|
81
|
+
const { orders, setOrders } = useOrderBasket<TestOrderBasketItem>(patient, orderTypeUuid, prepTestOrderPostData);
|
|
57
82
|
const [isExpanded, setIsExpanded] = useState(orders.length > 0);
|
|
58
83
|
const {
|
|
59
84
|
incompleteOrderBasketItems,
|
|
@@ -90,31 +115,40 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon }: LabOrderBasketPanel
|
|
|
90
115
|
discontinuedOrderBasketItems,
|
|
91
116
|
};
|
|
92
117
|
}, [orders]);
|
|
118
|
+
const isWorkSpaceType = useCallback((value: string): value is WorkSpaceType => {
|
|
119
|
+
return Object.values(WORKSPACES).includes(value as WorkSpaceType);
|
|
120
|
+
}, []);
|
|
93
121
|
|
|
94
122
|
const openNewLabForm = useCallback(() => {
|
|
95
|
-
closeWorkspace(
|
|
123
|
+
closeWorkspace(isWorkSpaceType(prevWorkSpace) ? prevWorkSpace : WORKSPACES.ORDER_BASKET, {
|
|
96
124
|
ignoreChanges: true,
|
|
97
125
|
onWorkspaceClose: () =>
|
|
98
126
|
launchWorkspace('add-lab-order', {
|
|
99
127
|
orderTypeUuid: orderTypeUuid,
|
|
128
|
+
prevWorkSpace: prevWorkSpace,
|
|
129
|
+
isWorkSpaceType: isWorkSpaceType,
|
|
130
|
+
prevOrder: prevOrder,
|
|
100
131
|
}),
|
|
101
132
|
closeWorkspaceGroup: false,
|
|
102
133
|
});
|
|
103
|
-
}, [orderTypeUuid]);
|
|
134
|
+
}, [orderTypeUuid, isWorkSpaceType, prevOrder, prevWorkSpace]);
|
|
104
135
|
|
|
105
136
|
const openEditLabForm = useCallback(
|
|
106
137
|
(order: OrderBasketItem) => {
|
|
107
|
-
closeWorkspace(
|
|
138
|
+
closeWorkspace(isWorkSpaceType(prevWorkSpace) ? prevWorkSpace : WORKSPACES.ORDER_BASKET, {
|
|
108
139
|
ignoreChanges: true,
|
|
109
140
|
onWorkspaceClose: () =>
|
|
110
141
|
launchWorkspace('add-lab-order', {
|
|
111
142
|
order,
|
|
112
143
|
orderTypeUuid: orderTypeUuid,
|
|
144
|
+
prevWorkSpace: prevWorkSpace,
|
|
145
|
+
isWorkSpaceType: isWorkSpaceType,
|
|
146
|
+
prevOrder: prevOrder,
|
|
113
147
|
}),
|
|
114
148
|
closeWorkspaceGroup: false,
|
|
115
149
|
});
|
|
116
150
|
},
|
|
117
|
-
[orderTypeUuid],
|
|
151
|
+
[orderTypeUuid, isWorkSpaceType, prevOrder, prevWorkSpace],
|
|
118
152
|
);
|
|
119
153
|
|
|
120
154
|
const removeLabOrder = useCallback(
|
|
@@ -140,10 +174,20 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon }: LabOrderBasketPanel
|
|
|
140
174
|
[styles.collapsedTile]: !isExpanded,
|
|
141
175
|
})}
|
|
142
176
|
>
|
|
143
|
-
<div className={styles.
|
|
177
|
+
<div className={classNames(isTablet ? styles.tabletContainer : styles.desktopContainer)}>
|
|
144
178
|
<div className={styles.iconAndLabel}>
|
|
145
|
-
|
|
146
|
-
|
|
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>
|
|
147
191
|
</div>
|
|
148
192
|
<div className={styles.buttonContainer}>
|
|
149
193
|
<Button
|
|
@@ -152,7 +196,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon }: LabOrderBasketPanel
|
|
|
152
196
|
kind="ghost"
|
|
153
197
|
onClick={openNewLabForm}
|
|
154
198
|
renderIcon={(props: ComponentProps<typeof AddIcon>) => <AddIcon size={16} {...props} />}
|
|
155
|
-
size={
|
|
199
|
+
size={responsiveSize}
|
|
156
200
|
>
|
|
157
201
|
{t('add', 'Add')}
|
|
158
202
|
</Button>
|
|
@@ -166,6 +210,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon }: LabOrderBasketPanel
|
|
|
166
210
|
renderIcon={(props: ComponentProps<typeof ChevronUpIcon>) =>
|
|
167
211
|
isExpanded ? <ChevronUpIcon size={16} {...props} /> : <ChevronDownIcon size={16} {...props} />
|
|
168
212
|
}
|
|
213
|
+
size={responsiveSize}
|
|
169
214
|
>
|
|
170
215
|
{t('add', 'Add')}
|
|
171
216
|
</Button>
|
|
@@ -245,3 +290,5 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon }: LabOrderBasketPanel
|
|
|
245
290
|
</Tile>
|
|
246
291
|
);
|
|
247
292
|
}
|
|
293
|
+
|
|
294
|
+
export default LabOrderBasketPanelExtension;
|
|
@@ -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:
|
|
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
|
|
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,14 +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';
|
|
5
|
+
import { getDefaultsFromConfigSchema, useConfig, useWorkspaces, type WorkspacesInfo } from '@openmrs/esm-framework';
|
|
6
6
|
import { type ConfigObject, configSchema } from '../../config-schema';
|
|
7
|
-
import type
|
|
7
|
+
import { type TestOrderBasketItem } from '../../types';
|
|
8
|
+
import { mockPatient } from 'tools';
|
|
8
9
|
import LabOrderBasketPanel from './lab-order-basket-panel.extension';
|
|
9
10
|
|
|
10
11
|
const mockUseOrderBasket = jest.fn();
|
|
11
12
|
const mockUseConfig = jest.mocked(useConfig<ConfigObject>);
|
|
12
13
|
const mockUseOrderType = jest.mocked(useOrderType);
|
|
14
|
+
const mockUseWorkSpaces = jest.mocked(useWorkspaces);
|
|
15
|
+
const mockWorkSpacesInfo = {} as WorkspacesInfo;
|
|
13
16
|
|
|
14
17
|
jest.mock('@openmrs/esm-patient-common-lib', () => ({
|
|
15
18
|
...jest.requireActual('@openmrs/esm-patient-common-lib'),
|
|
@@ -36,10 +39,20 @@ mockUseOrderType.mockReturnValue({
|
|
|
36
39
|
errorFetchingOrderType: undefined,
|
|
37
40
|
});
|
|
38
41
|
|
|
42
|
+
const testProps = {
|
|
43
|
+
patientUuid: mockPatient.id,
|
|
44
|
+
patient: mockPatient,
|
|
45
|
+
visitContext: null,
|
|
46
|
+
mutateVisitContext: null,
|
|
47
|
+
};
|
|
48
|
+
|
|
39
49
|
describe('LabOrderBasketPanel', () => {
|
|
50
|
+
beforeEach(() => {
|
|
51
|
+
mockUseWorkSpaces.mockReturnValue(mockWorkSpacesInfo);
|
|
52
|
+
});
|
|
40
53
|
test('renders an empty state when no items are selected in the order basket', () => {
|
|
41
54
|
mockUseOrderBasket.mockReturnValue({ orders: [] });
|
|
42
|
-
render(<LabOrderBasketPanel />);
|
|
55
|
+
render(<LabOrderBasketPanel {...testProps} />);
|
|
43
56
|
expect(screen.getByRole('heading', { name: /Lab orders \(0\)/i })).toBeInTheDocument();
|
|
44
57
|
expect(screen.getByRole('button', { name: /Add/i })).toBeInTheDocument();
|
|
45
58
|
});
|
|
@@ -76,7 +89,7 @@ describe('LabOrderBasketPanel', () => {
|
|
|
76
89
|
orders: orders,
|
|
77
90
|
setOrders: mockSetOrders,
|
|
78
91
|
}));
|
|
79
|
-
const { rerender } = render(<LabOrderBasketPanel />);
|
|
92
|
+
const { rerender } = render(<LabOrderBasketPanel {...testProps} />);
|
|
80
93
|
expect(screen.getByText(/Lab orders \(2\)/i)).toBeInTheDocument();
|
|
81
94
|
expect(screen.getByText(/HIV VIRAL LOAD/i)).toBeInTheDocument();
|
|
82
95
|
expect(screen.getByText(/CD4 COUNT/i)).toBeInTheDocument();
|
|
@@ -85,7 +98,7 @@ describe('LabOrderBasketPanel', () => {
|
|
|
85
98
|
expect(removeHivButton).toBeVisible();
|
|
86
99
|
|
|
87
100
|
await user.click(removeHivButton);
|
|
88
|
-
rerender(<LabOrderBasketPanel />);
|
|
101
|
+
rerender(<LabOrderBasketPanel {...testProps} />);
|
|
89
102
|
await expect(screen.getByText(/Lab orders \(1\)/i)).toBeInTheDocument();
|
|
90
103
|
expect(screen.getByText(/CD4 COUNT/i)).toBeInTheDocument();
|
|
91
104
|
expect(screen.queryByText(/HIV VIRAL LOAD/i)).not.toBeInTheDocument();
|