Przeglądaj źródła

[FE] [Bug] "Select filter" button is active without selecting any saved filter (#2900)

* "Select filter" button is active without selecting any saved filter within Topic/Messages/Saved filters (#2870)

* Add minor tests

* Fix prettier

* Fix unit test

* Fix unit test
Winnie Chiu 2 lat temu
rodzic
commit
212479d98f

+ 2 - 0
kafka-ui-react-app/src/components/Topics/Topic/Messages/Filters/SavedFilters.tsx

@@ -51,6 +51,7 @@ const SavedFilters: FC<Props> = ({
       </>,
       () => {
         deleteFilter(index);
+        setSelectedFilter(-1);
       }
     );
   };
@@ -95,6 +96,7 @@ const SavedFilters: FC<Props> = ({
           buttonType="primary"
           type="button"
           onClick={activateFilter}
+          disabled={selectedFilter === -1}
         >
           Select filter
         </Button>

+ 6 - 3
kafka-ui-react-app/src/components/Topics/Topic/Messages/Filters/__tests__/SavedFilters.spec.tsx

@@ -50,6 +50,9 @@ describe('SavedFilter Component', () => {
     it('should check the rendering of the empty filter', () => {
       expect(screen.getByText(/no saved filter/i)).toBeInTheDocument();
       expect(screen.queryByRole('savedFilter')).not.toBeInTheDocument();
+
+      const selectFilterButton = screen.getByText(/Select filter/i);
+      expect(selectFilterButton).toBeDisabled();
     });
   });
 
@@ -116,7 +119,6 @@ describe('SavedFilter Component', () => {
     });
 
     it('Open Confirmation for the deletion modal', async () => {
-      setUpComponent({ deleteFilter: deleteMock });
       const savedFilters = getSavedFilters();
       const deleteIcons = screen.getAllByText('mock-DeleteIcon');
       await userEvent.hover(savedFilters[0]);
@@ -129,7 +131,6 @@ describe('SavedFilter Component', () => {
     });
 
     it('Close Confirmations deletion modal with button', async () => {
-      setUpComponent({ deleteFilter: deleteMock });
       const savedFilters = getSavedFilters();
       const deleteIcons = screen.getAllByText('mock-DeleteIcon');
 
@@ -146,7 +147,6 @@ describe('SavedFilter Component', () => {
     });
 
     it('Delete the saved filter', async () => {
-      setUpComponent({ deleteFilter: deleteMock });
       const savedFilters = getSavedFilters();
       const deleteIcons = screen.getAllByText('mock-DeleteIcon');
 
@@ -157,6 +157,9 @@ describe('SavedFilter Component', () => {
       await userEvent.click(screen.getByRole('button', { name: 'Confirm' }));
       expect(deleteMock).toHaveBeenCalledTimes(1);
       expect(screen.queryByRole('dialog')).not.toBeInTheDocument();
+
+      const selectFilterButton = screen.getByText(/Select filter/i);
+      expect(selectFilterButton).toBeDisabled();
     });
   });
 });