Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -317,13 +317,15 @@ describe('AlertsTable', () => {
let onToggleColumn: AlertsDataGridProps['onToggleColumn'];
let onResetColumns: AlertsDataGridProps['onResetColumns'];
let refresh: RenderContext<AdditionalContext>['refresh'];
let refreshSpy: jest.SpyInstance<void, []>;

mockAlertsDataGrid.mockImplementation((props) => {
const { AlertsDataGrid: ActualAlertsDataGrid } = jest.requireActual('./alerts_data_grid');
onPageIndexChange = props.renderContext.onPageIndexChange;
onToggleColumn = props.onToggleColumn;
onResetColumns = props.onResetColumns;
refresh = props.renderContext.refresh;
refreshSpy = jest.spyOn(props.renderContext, 'refresh');
return <ActualAlertsDataGrid {...props} />;
});

Expand Down Expand Up @@ -1139,5 +1141,17 @@ describe('AlertsTable', () => {
})
);
});

it("doesn't call `refresh` when paginating and using `lastReloadRequestTime`", async () => {
render(<AlertsTable {...tableProps} lastReloadRequestTime={Date.now()} pageSize={1} />);

await waitFor(() => expect(onPageIndexChange).not.toBeUndefined());

act(() => {
onPageIndexChange(1);
});

expect(refreshSpy).not.toHaveBeenCalled();
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,9 @@ const AlertsTableContent = typedForwardRef(
if (lastReloadRequestTime) {
refresh();
}
}, [lastReloadRequestTime, refresh]);
// Purposefully not including `refresh` to avoid refreshing when it changes
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [lastReloadRequestTime]);

useImperativeHandle(ref, () => ({
refresh,
Expand Down