mirror of
https://github.com/Unleash/unleash.git
synced 2025-08-13 13:48:59 +02:00
feat: add lifecycle stage filter to project feature toggles
This commit is contained in:
parent
3338ea4300
commit
0f9a945e9e
@ -207,3 +207,34 @@ test('Project is not onboarded', async () => {
|
|||||||
);
|
);
|
||||||
await screen.findByText('Welcome to your project');
|
await screen.findByText('Welcome to your project');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('renders lifecycle filters', async () => {
|
||||||
|
setupApi();
|
||||||
|
|
||||||
|
render(
|
||||||
|
<Routes>
|
||||||
|
<Route
|
||||||
|
path={'/projects/:projectId'}
|
||||||
|
element={
|
||||||
|
<ProjectFeatureToggles
|
||||||
|
environments={['development', 'production']}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Routes>,
|
||||||
|
{
|
||||||
|
route: '/projects/default',
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
const addFilter = await screen.findByText('Filter');
|
||||||
|
fireEvent.click(addFilter);
|
||||||
|
|
||||||
|
const lifecycleFilter = await screen.findByText('Lifecycle stage');
|
||||||
|
fireEvent.click(lifecycleFilter);
|
||||||
|
|
||||||
|
await screen.findByText('Define');
|
||||||
|
await screen.findByText('Develop');
|
||||||
|
await screen.findByText('Rollout production');
|
||||||
|
await screen.findByText('Cleanup');
|
||||||
|
});
|
||||||
|
@ -113,6 +113,7 @@ export const ProjectFeatureToggles = ({
|
|||||||
state: tableState.state,
|
state: tableState.state,
|
||||||
createdBy: tableState.createdBy,
|
createdBy: tableState.createdBy,
|
||||||
archived: tableState.archived,
|
archived: tableState.archived,
|
||||||
|
lifecycle: tableState.lifecycle,
|
||||||
};
|
};
|
||||||
|
|
||||||
const { favorite, unfavorite } = useFavoriteFeaturesApi();
|
const { favorite, unfavorite } = useFavoriteFeaturesApi();
|
||||||
|
@ -111,6 +111,19 @@ export const ProjectOverviewFilters: VFC<IProjectOverviewFilters> = ({
|
|||||||
singularOperators: ['IS'],
|
singularOperators: ['IS'],
|
||||||
pluralOperators: ['IS_ANY_OF'],
|
pluralOperators: ['IS_ANY_OF'],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Lifecycle stage',
|
||||||
|
icon: 'model_training',
|
||||||
|
options: [
|
||||||
|
{ label: 'Define', value: 'initial' },
|
||||||
|
{ label: 'Develop', value: 'pre-live' },
|
||||||
|
{ label: 'Rollout production', value: 'live' },
|
||||||
|
{ label: 'Cleanup', value: 'completed' },
|
||||||
|
],
|
||||||
|
filterKey: 'lifecycle',
|
||||||
|
singularOperators: ['IS', 'IS_NOT'],
|
||||||
|
pluralOperators: ['IS_ANY_OF', 'IS_NONE_OF'],
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
setAvailableFilters(availableFilters);
|
setAvailableFilters(availableFilters);
|
||||||
|
@ -41,6 +41,7 @@ export const useProjectFeatureSearch = (
|
|||||||
type: FilterItemParam,
|
type: FilterItemParam,
|
||||||
createdBy: FilterItemParam,
|
createdBy: FilterItemParam,
|
||||||
archived: FilterItemParam,
|
archived: FilterItemParam,
|
||||||
|
lifecycle: FilterItemParam,
|
||||||
};
|
};
|
||||||
const [tableState, setTableState] = usePersistentTableState(
|
const [tableState, setTableState] = usePersistentTableState(
|
||||||
`${storageKey}-${projectId}`,
|
`${storageKey}-${projectId}`,
|
||||||
|
Loading…
Reference in New Issue
Block a user