diff --git a/CHANGELOG.md b/CHANGELOG.md
index a45e1f99..eaaba8dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
## 13.0.0 IN PROGRESS
+* Display Anonymized when searching requests. Refs UIREQ-1312.
* *BREAKING* Use `convertToSlipData` and supporting functions from `stripes-util`. Refs UIREQ-1263.
* Replace moment with day.js. Refs UIREQ-1291.
* Reduce count of eslint errors after update eslint-config-stripes. Refs UIREQ-1289.
diff --git a/src/deprecated/routes/RequestsRoute/RequestsRoute.js b/src/deprecated/routes/RequestsRoute/RequestsRoute.js
index e7a75ffa..1aa7de84 100644
--- a/src/deprecated/routes/RequestsRoute/RequestsRoute.js
+++ b/src/deprecated/routes/RequestsRoute/RequestsRoute.js
@@ -215,6 +215,19 @@ export const urls = {
},
};
+function userFormatter(id, user) {
+ if (user) {
+ return getFullName(user);
+ }
+
+ if (id) {
+ // User has been deleted
+ return ;
+ }
+
+ return ;
+}
+
export const getListFormatter = (
{
getRowURL,
@@ -241,13 +254,13 @@ export const getListFormatter = (
/>),
'itemBarcode': rq => (rq?.item?.barcode || ),
'position': rq => (rq.position || ),
- 'proxy': rq => (rq.proxy ? getFullName(rq.proxy) : ),
+ 'proxy': rq => userFormatter(rq.proxyUserId, rq.proxy),
'requestDate': rq => (
),
- 'requester': rq => (rq.requester ? getFullName(rq.requester) : ),
+ 'requester': rq => userFormatter(rq.requesterId, rq.requester),
'singlePrint': rq => {
const singlePrintButtonProps = {
request: rq,
diff --git a/src/deprecated/routes/RequestsRoute/RequestsRoute.test.js b/src/deprecated/routes/RequestsRoute/RequestsRoute.test.js
index 6576c563..5ad23939 100644
--- a/src/deprecated/routes/RequestsRoute/RequestsRoute.test.js
+++ b/src/deprecated/routes/RequestsRoute/RequestsRoute.test.js
@@ -89,6 +89,7 @@ const testIds = {
singlePrintButton: 'singlePrintButton',
rowCheckbox: 'rowCheckbox',
selectRequestCheckbox: 'selectRequestCheckbox',
+ anonymized: 'ui-requests.requestMeta.anonymized',
};
const intlCache = createIntlCache();
@@ -231,6 +232,7 @@ const labelIds = {
titleWithSearch: 'ui-requests.documentTitle.search',
defaultTitle: 'ui-requests.meta.title',
recordsSelected: 'ui-requests.rows.recordsSelected',
+ anonymized: 'ui-requests.requestMeta.anonymized',
};
const mockedRequest = {
requestLevel: REQUEST_LEVEL_TYPES.ITEM,
@@ -1268,9 +1270,16 @@ describe('RequestsRoute', () => {
expect(listFormatter.proxy(requestWithData)).toBe(mockProxy);
});
- it('should trigger NoValue component', () => {
+ it('should render Anonymized', () => {
render(listFormatter.proxy(requestWithoutData));
+ expect(screen.getByText(labelIds.anonymized)).toBeInTheDocument();
+ });
+
+ it('should trigger NoValue component', () => {
+ const req = { ...requestWithoutData, proxyUserId: 'deleted proxy user' };
+ render(listFormatter.proxy(req));
+
expect(NoValue).toHaveBeenCalled();
});
});
@@ -1305,9 +1314,16 @@ describe('RequestsRoute', () => {
expect(listFormatter.requester(requestWithData)).toBe(mockRequester);
});
- it('should trigger NoValue component', () => {
+ it('should render Anonymized', () => {
render(listFormatter.requester(requestWithoutData));
+ expect(screen.getByText(labelIds.anonymized)).toBeInTheDocument();
+ });
+
+ it('should trigger NoValue component', () => {
+ const req = { ...requestWithoutData, requesterId: 'deleted requester' };
+ render(listFormatter.requester(req));
+
expect(NoValue).toHaveBeenCalled();
});
});
diff --git a/src/routes/RequestsRoute.js b/src/routes/RequestsRoute.js
index 9dfe49aa..057c585a 100644
--- a/src/routes/RequestsRoute.js
+++ b/src/routes/RequestsRoute.js
@@ -232,6 +232,19 @@ export const urls = {
},
};
+function userFormatter(id, user) {
+ if (user) {
+ return getFullName(user);
+ }
+
+ if (id) {
+ // User has been deleted
+ return ;
+ }
+
+ return ;
+}
+
export const getListFormatter = (
{
getRowURL,
@@ -259,13 +272,13 @@ export const getListFormatter = (
/>),
'itemBarcode': rq => (rq?.item?.barcode || ),
'position': rq => (rq.position || ),
- ...(isProxyAvailable ? { 'proxy': rq => (rq.proxy ? getFullName(rq.proxy) : ) } : {}),
+ ...(isProxyAvailable ? { 'proxy': rq => userFormatter(rq.proxyUserId, rq.proxy) } : {}),
'requestDate': rq => (
),
- 'requester': rq => (rq.requester ? getFullName(rq.requester) : ),
+ 'requester': rq => userFormatter(rq.requesterId, rq.requester),
'singlePrint': rq => {
const singlePrintButtonProps = {
request: rq,
diff --git a/src/routes/RequestsRoute.test.js b/src/routes/RequestsRoute.test.js
index 53a569cf..ec2422ec 100644
--- a/src/routes/RequestsRoute.test.js
+++ b/src/routes/RequestsRoute.test.js
@@ -236,6 +236,7 @@ const labelIds = {
titleWithSearch: 'ui-requests.documentTitle.search',
defaultTitle: 'ui-requests.meta.title',
recordsSelected: 'ui-requests.rows.recordsSelected',
+ anonymized: 'ui-requests.requestMeta.anonymized',
};
const mockedRequest = {
requestLevel: REQUEST_LEVEL_TYPES.ITEM,
@@ -1422,9 +1423,16 @@ describe('RequestsRoute', () => {
expect(listFormatter.proxy(requestWithData)).toBe(mockProxy);
});
- it('should trigger NoValue component', () => {
+ it('should render Anonymized', () => {
render(listFormatter.proxy(requestWithoutData));
+ expect(screen.getByText(labelIds.anonymized)).toBeInTheDocument();
+ });
+
+ it('should trigger NoValue component', () => {
+ const req = { ...requestWithoutData, proxyUserId: 'deleted proxy user' };
+ render(listFormatter.proxy(req));
+
expect(NoValue).toHaveBeenCalled();
});
});
@@ -1459,9 +1467,16 @@ describe('RequestsRoute', () => {
expect(listFormatter.requester(requestWithData)).toBe(mockRequester);
});
- it('should trigger NoValue component', () => {
+ it('should trigger Anonymized component', () => {
render(listFormatter.requester(requestWithoutData));
+ expect(screen.getByText(labelIds.anonymized)).toBeInTheDocument();
+ });
+
+ it('should trigger NoValue component', () => {
+ const req = { ...requestWithoutData, requesterId: 'deleted requester' };
+ render(listFormatter.requester(req));
+
expect(NoValue).toHaveBeenCalled();
});
});