From cb46292bb37e0a258c511fe2a8169b8a3006bc1b Mon Sep 17 00:00:00 2001
From: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
Date: Thu, 11 Sep 2025 12:46:03 +0200
Subject: [PATCH] feat: implement FeaturesOverview lifecycle filters and
associated tests
---
.../FeatureToggleList/FeatureToggleListTable.tsx | 10 +++++-----
.../FeaturesOverviewLifecycleFilters.test.tsx} | 12 ++++++------
.../FeaturesOverviewLifecycleFilters.tsx} | 2 +-
.../FeaturesOverviewToggleFilters.test.tsx} | 6 +++---
.../FeaturesOverviewToggleFilters.tsx} | 2 +-
5 files changed, 16 insertions(+), 16 deletions(-)
rename frontend/src/component/feature/FeatureToggleList/{FeatureToggleFilters/LifecycleFilters.test.tsx => FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.test.tsx} (88%)
rename frontend/src/component/feature/FeatureToggleList/{FeatureToggleFilters/FeatureLifecycleFilters.tsx => FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.tsx} (93%)
rename frontend/src/component/feature/FeatureToggleList/{FeatureToggleFilters/FeatureToggleFilters.test.tsx => FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.test.tsx} (79%)
rename frontend/src/component/feature/FeatureToggleList/{FeatureToggleFilters/FeatureToggleFilters.tsx => FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.tsx} (98%)
diff --git a/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx b/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx
index 2efd67ccad..892f749686 100644
--- a/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx
+++ b/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx
@@ -20,7 +20,7 @@ import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
import { focusable } from 'themes/themeStyles';
import { FeatureLifecycleCell } from 'component/common/Table/cells/FeatureSeenCell/FeatureEnvironmentSeenCell';
import useToast from 'hooks/useToast';
-import { FeatureToggleFilters } from './FeatureToggleFilters/FeatureToggleFilters.tsx';
+import { FeaturesOverviewToggleFilters } from './FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.tsx';
import { withTableState } from 'utils/withTableState';
import useLoading from 'hooks/useLoading';
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
@@ -29,7 +29,7 @@ import {
useTableStateFilter,
} from './useGlobalFeatureSearch.ts';
import useProjects from 'hooks/api/getters/useProjects/useProjects';
-import { FeatureLifecycleFilters } from './FeatureToggleFilters/FeatureLifecycleFilters.tsx';
+import { FeaturesOverviewLifecycleFilters } from './FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.tsx';
import { ExportFlags } from './ExportFlags.tsx';
import { createFeatureOverviewCell } from 'component/common/Table/cells/FeatureOverviewCell/FeatureOverviewCell';
import { AvatarCell } from 'component/project/Project/PaginatedProjectFeatureToggles/AvatarCell';
@@ -290,7 +290,7 @@ export const FeatureToggleListTable: FC = () => {
/>
}
>
- {
id='globalFeatureFlags'
/>
) : null}
-
-
+
diff --git a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/LifecycleFilters.test.tsx b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.test.tsx
similarity index 88%
rename from frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/LifecycleFilters.test.tsx
rename to frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.test.tsx
index 7acd519b14..ee46539720 100644
--- a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/LifecycleFilters.test.tsx
+++ b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.test.tsx
@@ -1,7 +1,7 @@
import { type MockedFunction, vi } from 'vitest';
import { render } from 'utils/testRenderer';
import userEvent from '@testing-library/user-event';
-import { FeatureLifecycleFilters } from './FeatureLifecycleFilters.tsx';
+import { FeaturesOverviewLifecycleFilters } from './FeaturesOverviewLifecycleFilters.tsx';
import { useLifecycleCount } from 'hooks/api/getters/useLifecycleCount/useLifecycleCount';
vi.mock('hooks/api/getters/useLifecycleCount/useLifecycleCount');
@@ -33,7 +33,7 @@ describe('LifecycleFilters', () => {
});
const { getByText } = render(
- ,
+ ,
);
expect(getByText('All flags')).toBeInTheDocument();
@@ -44,7 +44,7 @@ describe('LifecycleFilters', () => {
it('renders all stages with correct counts when no total provided', () => {
const { getByText } = render(
- ,
+ ,
);
expect(getByText('All flags')).toBeInTheDocument();
@@ -56,7 +56,7 @@ describe('LifecycleFilters', () => {
it('renders dynamic label when total matches count', () => {
const total = 3;
const { getByText } = render(
- {
it('renders dynamic label when total does not match count', () => {
const total = 2;
const { getByText } = render(
- {
it('will apply a correct filter for each stage', async () => {
const onChange = vi.fn();
const { getByText } = render(
- ,
+ ,
);
await userEvent.click(getByText('Develop (2)'));
diff --git a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureLifecycleFilters.tsx b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.tsx
similarity index 93%
rename from frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureLifecycleFilters.tsx
rename to frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.tsx
index 3c59374a29..e91585e02b 100644
--- a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureLifecycleFilters.tsx
+++ b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewLifecycleFilters.tsx
@@ -11,7 +11,7 @@ interface ILifecycleFiltersProps {
children?: ReactNode;
}
-export const FeatureLifecycleFilters: FC = ({
+export const FeaturesOverviewLifecycleFilters: FC = ({
state,
onChange,
total,
diff --git a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureToggleFilters.test.tsx b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.test.tsx
similarity index 79%
rename from frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureToggleFilters.test.tsx
rename to frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.test.tsx
index a846c11320..6253bb6680 100644
--- a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureToggleFilters.test.tsx
+++ b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.test.tsx
@@ -1,7 +1,7 @@
import { screen } from '@testing-library/react';
import { render } from 'utils/testRenderer';
import { testServerRoute, testServerSetup } from 'utils/testServer';
-import { FeatureToggleFilters } from './FeatureToggleFilters.tsx';
+import { FeaturesOverviewToggleFilters } from './FeaturesOverviewToggleFilters.tsx';
const server = testServerSetup();
@@ -19,7 +19,7 @@ test('should render projects filters when more than one project', async () => {
],
});
- render( {}} state={{}} />);
+ render( {}} state={{}} />);
await screen.findByText('Project');
});
@@ -34,7 +34,7 @@ test('should not render projects filters when less than two project', async () =
],
});
- render( {}} state={{}} />);
+ render( {}} state={{}} />);
expect(screen.queryByText('Projects')).not.toBeInTheDocument();
});
diff --git a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureToggleFilters.tsx b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.tsx
similarity index 98%
rename from frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureToggleFilters.tsx
rename to frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.tsx
index f605182b83..04eeda78d9 100644
--- a/frontend/src/component/feature/FeatureToggleList/FeatureToggleFilters/FeatureToggleFilters.tsx
+++ b/frontend/src/component/feature/FeatureToggleList/FeaturesOverviewLifecycleFilters/FeaturesOverviewToggleFilters.tsx
@@ -14,7 +14,7 @@ interface IFeatureToggleFiltersProps {
onChange: (value: FilterItemParamHolder) => void;
}
-export const FeatureToggleFilters: VFC = ({
+export const FeaturesOverviewToggleFilters: VFC = ({
state,
onChange,
}) => {