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, }) => {