{getRecoveryProtectedItemsLoadingState().text}
@@ -427,7 +473,7 @@ export const RecoveryProtectedInventorySection: Component<
onClick={() => props.onSelectRollup(rollup.rollupId)}
>
-
-
{label}
-
-
- {getRecoveryRollupStatusPillLabel('never-succeeded')}
-
-
-
-
- {getRecoveryRollupStatusPillLabel('stale')}
-
-
+
+
+ {label}
+
+
+ {getRecoveryRollupStatusPillLabel('never-succeeded')}
+
+
+
+
+ {getRecoveryRollupStatusPillLabel('stale')}
+
+
+
+
+
+ {itemTypePresentation?.label}
+
+ 0}>
+
+ {platforms
+ .map((platform) => getSourcePlatformLabel(platform))
+ .join(' • ')}
+
+
+
@@ -456,7 +516,7 @@ export const RecoveryProtectedInventorySection: Component<
fallback={
—}
>
@@ -525,9 +585,7 @@ export const RecoveryProtectedInventorySection: Component<
fallback={Showing 0 of 0 protected items}
>
- Showing {(protectedPage() - 1) * PROTECTED_ITEMS_PAGE_SIZE + 1} -{' '}
- {Math.min(protectedPage() * PROTECTED_ITEMS_PAGE_SIZE, sortedRollups().length)} of{' '}
- {sortedRollups().length} protected items
+ Showing {pageStart()} - {pageEnd()} of {sortedRollups().length} protected items
diff --git a/frontend-modern/src/components/Recovery/__tests__/Recovery.test.tsx b/frontend-modern/src/components/Recovery/__tests__/Recovery.test.tsx
index c7599a71c2..9298adbbe3 100644
--- a/frontend-modern/src/components/Recovery/__tests__/Recovery.test.tsx
+++ b/frontend-modern/src/components/Recovery/__tests__/Recovery.test.tsx
@@ -213,7 +213,7 @@ describe('Recovery', () => {
expect(within(inventoryTable).getByText('Item')).toBeInTheDocument();
expect(within(inventoryTable).getByText('Item Type')).toBeInTheDocument();
expect(within(inventoryTable).getByText('Platform')).toBeInTheDocument();
- expect(within(inventoryTable).getByText('VM')).toBeInTheDocument();
+ expect(within(inventoryTable).getAllByText('VM').length).toBeGreaterThan(0);
expect(screen.queryByText('Backups By Date')).not.toBeInTheDocument();
fireEvent.click(await screen.findByText('VM 123'));
@@ -742,13 +742,17 @@ describe('Recovery', () => {
render(() => );
expect(await screen.findByText('Showing 1 - 24 of 26 protected items')).toBeInTheDocument();
- expect(screen.getByText('Page 1 / 2')).toBeInTheDocument();
+ expect(screen.getAllByText('Page 1 / 2').length).toBeGreaterThan(0);
+ expect(screen.getByText('Sorted by Latest Point')).toBeInTheDocument();
+ expect(
+ screen.getByText('Open any item to drill directly into its recovery events.'),
+ ).toBeInTheDocument();
fireEvent.click(screen.getByRole('button', { name: 'Next' }));
await waitFor(() => {
expect(screen.getByText('Showing 25 - 26 of 26 protected items')).toBeInTheDocument();
- expect(screen.getByText('Page 2 / 2')).toBeInTheDocument();
+ expect(screen.getAllByText('Page 2 / 2').length).toBeGreaterThan(0);
});
});