diff --git a/frontend/cypress/integration/feature/feature.spec.ts b/frontend/cypress/integration/feature/feature.spec.ts index 5fae05fa18..855fb7af4f 100644 --- a/frontend/cypress/integration/feature/feature.spec.ts +++ b/frontend/cypress/integration/feature/feature.spec.ts @@ -49,12 +49,6 @@ describe('feature', () => { }); }); - it('can add a userId strategy to the development environment', () => { - cy.addUserIdStrategyToFeature_UI(featureToggleName).then(() => { - cy.deleteFeatureStrategy_UI(featureToggleName, false); - }); - }); - it('can add variants to the development environment', () => { cy.addVariantsToFeature_UI(featureToggleName, [variant1, variant2]); }); diff --git a/frontend/cypress/support/UI.ts b/frontend/cypress/support/UI.ts index f3be3186df..006bad07c6 100644 --- a/frontend/cypress/support/UI.ts +++ b/frontend/cypress/support/UI.ts @@ -221,6 +221,7 @@ export const deleteFeatureStrategy_UI = ( ).as('deleteUserStrategy'); cy.visit(`/projects/${project}/features/${featureToggleName}`); cy.get('[data-testid=FEATURE_ENVIRONMENT_ACCORDION_development]').click(); + cy.get('[data-testid=STRATEGY_REMOVE_MENU_BTN]').first().click(); cy.get('[data-testid=STRATEGY_FORM_REMOVE_ID]').first().click(); if (!shouldWait) return cy.get('[data-testid=DIALOGUE_CONFIRM_ID]').click(); else cy.get('[data-testid=DIALOGUE_CONFIRM_ID]').click(); diff --git a/frontend/src/component/changeRequest/ChangeRequestPermissions.test.tsx b/frontend/src/component/changeRequest/ChangeRequestPermissions.test.tsx index 5074e4eef2..9030c9b46a 100644 --- a/frontend/src/component/changeRequest/ChangeRequestPermissions.test.tsx +++ b/frontend/src/component/changeRequest/ChangeRequestPermissions.test.tsx @@ -203,37 +203,54 @@ const strategiesAreDisplayed = async ( await screen.findByText(secondStrategy); }; +const getDeleteButtons = async () => { + const removeMenus = screen.getAllByTestId(`STRATEGY_REMOVE_MENU_BTN`); + const deleteButtons: HTMLElement[] = []; + + await Promise.all( + removeMenus.map(async menu => { + menu.click(); + const removeButton = screen.getAllByTestId( + 'STRATEGY_FORM_REMOVE_ID' + ); + deleteButtons.push(...removeButton); + }) + ); + console.log(deleteButtons); + return deleteButtons; +}; + const deleteButtonsActiveInChangeRequestEnv = async () => { - const deleteButtons = screen.getAllByTestId('STRATEGY_FORM_REMOVE_ID'); - expect(deleteButtons.length).toBe(2); + const deleteButtons = await getDeleteButtons(); + expect(deleteButtons.length).toBe(3); // wait for change request config to be loaded await waitFor(() => { // production - const productionStrategyDeleteButton = deleteButtons[0]; - expect(productionStrategyDeleteButton).not.toBeDisabled(); + const productionStrategyDeleteButton = deleteButtons[1]; + expect(productionStrategyDeleteButton).not.toHaveClass('Mui-disabled'); }); await waitFor(() => { // custom env - const customEnvStrategyDeleteButton = deleteButtons[1]; - expect(customEnvStrategyDeleteButton).toBeDisabled(); + const customEnvStrategyDeleteButton = deleteButtons[2]; + expect(customEnvStrategyDeleteButton).toHaveClass('Mui-disabled'); }); }; const deleteButtonsInactiveInChangeRequestEnv = async () => { - const deleteButtons = screen.getAllByTestId('STRATEGY_FORM_REMOVE_ID'); - expect(deleteButtons.length).toBe(2); + const deleteButtons = await getDeleteButtons(); + expect(deleteButtons.length).toBe(3); // wait for change request config to be loaded await waitFor(() => { // production - const productionStrategyDeleteButton = deleteButtons[0]; - expect(productionStrategyDeleteButton).toBeDisabled(); + const productionStrategyDeleteButton = deleteButtons[1]; + expect(productionStrategyDeleteButton).toHaveClass('Mui-disabled'); }); await waitFor(() => { // custom env - const customEnvStrategyDeleteButton = deleteButtons[1]; - expect(customEnvStrategyDeleteButton).toBeDisabled(); + const customEnvStrategyDeleteButton = deleteButtons[2]; + expect(customEnvStrategyDeleteButton).toHaveClass('Mui-disabled'); }); }; diff --git a/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.test.tsx b/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.test.tsx index 8ca44f4762..f2cf6a0236 100644 --- a/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.test.tsx +++ b/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.test.tsx @@ -2,14 +2,8 @@ import { screen } from '@testing-library/react'; import { render } from 'utils/testRenderer'; import { StrategyItemContainer } from './StrategyItemContainer'; import { IFeatureStrategy } from 'interfaces/strategy'; -import { testServerRoute, testServerSetup } from 'utils/testServer'; import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer'; -const server = testServerSetup(); -testServerRoute(server, '/api/admin/ui-config', { - flags: { strategyImprovements: true }, -}); - test('should render strategy name, custom title and description', async () => { const strategy: IFeatureStrategy = { id: 'irrelevant', diff --git a/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.tsx b/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.tsx index 2cfcad6ee5..2d2847bd63 100644 --- a/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.tsx +++ b/frontend/src/component/common/StrategyItemContainer/StrategyItemContainer.tsx @@ -9,7 +9,6 @@ import { import StringTruncator from 'component/common/StringTruncator/StringTruncator'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import { PlaygroundStrategySchema } from 'openapi'; -import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { Badge } from '../Badge/Badge'; import { Link } from 'react-router-dom'; @@ -105,7 +104,6 @@ export const StrategyItemContainer: FC = ({ description, }) => { const Icon = getFeatureStrategyIcon(strategy.name); - const { uiConfig } = useUiConfig(); const StrategyHeaderLink: React.FC = 'links' in strategy @@ -158,11 +156,7 @@ export const StrategyItemContainer: FC = ({ text={formatStrategyName(String(strategy.name))} /> {formatStrategyName( diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyEdit/FeatureStrategyEdit.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyEdit/FeatureStrategyEdit.tsx index 056f4f6204..97346c5b80 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyEdit/FeatureStrategyEdit.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyEdit/FeatureStrategyEdit.tsx @@ -94,7 +94,7 @@ export const FeatureStrategyEdit = () => { const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId); const { refetch: refetchChangeRequests } = usePendingChangeRequests(projectId); - const { setPreviousTitle, trackTitle } = useTitleTracking(); + const { setPreviousTitle } = useTitleTracking(); const { feature, refetchFeature } = useFeature(projectId, featureId); @@ -153,11 +153,6 @@ export const FeatureStrategyEdit = () => { payload ); - if (uiConfig?.flags?.strategyImprovements) { - // NOTE: remove tracking when feature flag is removed - trackTitle(strategy.title); - } - await refetchSavedStrategySegments(); setToastData({ title: 'Strategy updated', diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx index ee6ed33bdb..c8f518b2f0 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx @@ -211,19 +211,14 @@ export const FeatureStrategyForm = ({ /> - { - setStrategy(prev => ({ - ...prev, - title, - })); - }} - /> - } + { + setStrategy(prev => ({ + ...prev, + title, + })); + }} /> = ({ title, setTitle, }) => { - const { uiConfig } = useUiConfig(); - - if (!uiConfig.flags.strategyImprovements) { - return null; - } - return ( theme.spacing(2) }}> { const { strategies } = useStrategies(); - const { uiConfig } = useUiConfig(); const preDefinedStrategies = strategies.filter( strategy => !strategy.deprecated && !strategy.editable @@ -39,25 +37,20 @@ export const FeatureStrategyMenuCards = ({ }; return ( - - - {environmentId} environment default strategy - - - - - - } - /> + <> + + {environmentId} environment default strategy + + + + + Predefined strategy types diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/LegacyFeatureStrategyRemove.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/LegacyFeatureStrategyRemove.tsx deleted file mode 100644 index 46f6e81a5e..0000000000 --- a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/LegacyFeatureStrategyRemove.tsx +++ /dev/null @@ -1,258 +0,0 @@ -import React, { FC, useState } from 'react'; -import useFeatureStrategyApi from 'hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi'; -import { formatUnknownError } from 'utils/formatUnknownError'; -import { useNavigate } from 'react-router-dom'; -import useToast from 'hooks/useToast'; -import { formatFeaturePath } from 'component/feature/FeatureStrategy/FeatureStrategyEdit/FeatureStrategyEdit'; -import { Dialogue } from 'component/common/Dialogue/Dialogue'; -import { Alert, styled, Typography } from '@mui/material'; -import PermissionButton from 'component/common/PermissionButton/PermissionButton'; -import { DELETE_FEATURE_STRATEGY } from 'component/providers/AccessProvider/permissions'; -import { useFeature } from 'hooks/api/getters/useFeature/useFeature'; -import { STRATEGY_FORM_REMOVE_ID } from 'utils/testIds'; -import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; -import PermissionIconButton from 'component/common/PermissionIconButton/PermissionIconButton'; -import { Delete } from '@mui/icons-material'; -import { useChangeRequestApi } from 'hooks/api/actions/useChangeRequestApi/useChangeRequestApi'; -import { useChangeRequestsEnabled } from 'hooks/useChangeRequestsEnabled'; -import { usePendingChangeRequests } from 'hooks/api/getters/usePendingChangeRequests/usePendingChangeRequests'; - -interface IFeatureStrategyRemoveProps { - projectId: string; - featureId: string; - environmentId: string; - strategyId: string; - disabled?: boolean; - icon?: boolean; - text?: boolean; -} - -interface IFeatureStrategyRemoveDialogueProps { - onRemove: (event: React.FormEvent) => Promise; - onClose: () => void; - isOpen: boolean; -} - -const RemoveAlert: FC = () => ( - - Removing the strategy will change which users receive access to the - feature. - -); - -const FeatureStrategyRemoveDialogue: FC< - IFeatureStrategyRemoveDialogueProps -> = ({ onRemove, onClose, isOpen }) => { - return ( - - - - ); -}; - -const MsgContainer = styled('div')(({ theme }) => ({ - marginTop: theme.spacing(3), - marginBottom: theme.spacing(1), -})); - -const SuggestFeatureStrategyRemoveDialogue: FC< - IFeatureStrategyRemoveDialogueProps -> = ({ onRemove, onClose, isOpen }) => { - return ( - - - - - Your suggestion: - - - Remove strategy - - ); -}; - -interface IRemoveProps { - projectId: string; - featureId: string; - environmentId: string; - strategyId: string; -} - -const useOnRemove = ({ - projectId, - featureId, - environmentId, - strategyId, -}: IRemoveProps) => { - const { deleteStrategyFromFeature } = useFeatureStrategyApi(); - const { setToastData, setToastApiError } = useToast(); - const navigate = useNavigate(); - const { refetchFeature } = useFeature(projectId, featureId); - - const onRemove = async (event: React.FormEvent) => { - try { - event.preventDefault(); - await deleteStrategyFromFeature( - projectId, - featureId, - environmentId, - strategyId - ); - setToastData({ - title: 'Strategy deleted', - type: 'success', - }); - refetchFeature(); - navigate(formatFeaturePath(projectId, featureId)); - } catch (error: unknown) { - setToastApiError(formatUnknownError(error)); - } - }; - return onRemove; -}; - -const useOnSuggestRemove = ({ - projectId, - featureId, - environmentId, - strategyId, -}: IRemoveProps) => { - const { addChange } = useChangeRequestApi(); - const { refetch: refetchChangeRequests } = - usePendingChangeRequests(projectId); - const { setToastData, setToastApiError } = useToast(); - const onSuggestRemove = async (event: React.FormEvent) => { - try { - event.preventDefault(); - await addChange(projectId, environmentId, { - action: 'deleteStrategy', - feature: featureId, - payload: { - id: strategyId, - }, - }); - setToastData({ - title: 'Changes added to the draft!', - type: 'success', - }); - await refetchChangeRequests(); - } catch (error: unknown) { - setToastApiError(formatUnknownError(error)); - } - }; - return onSuggestRemove; -}; - -/** - * @deprecated - * TODO: remove when strategyImprovements flag is removed - */ -export const LegacyFeatureStrategyRemove = ({ - projectId, - featureId, - environmentId, - strategyId, - disabled, - icon, - text, -}: IFeatureStrategyRemoveProps) => { - const [openDialogue, setOpenDialogue] = useState(false); - - const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId); - - const onRemove = useOnRemove({ - featureId, - projectId, - strategyId, - environmentId, - }); - const onSuggestRemove = useOnSuggestRemove({ - featureId, - projectId, - strategyId, - environmentId, - }); - - return ( - <> - setOpenDialogue(true)} - projectId={projectId} - environmentId={environmentId} - disabled={disabled} - permission={DELETE_FEATURE_STRATEGY} - data-testid={STRATEGY_FORM_REMOVE_ID} - tooltipProps={{ title: 'Remove strategy' }} - type="button" - > - - theme.spacing(1) }} - > - Remove - - } - /> - - } - elseShow={ - setOpenDialogue(true)} - projectId={projectId} - environmentId={environmentId} - disabled={disabled} - permission={DELETE_FEATURE_STRATEGY} - data-testid={STRATEGY_FORM_REMOVE_ID} - color="secondary" - variant="text" - type="button" - > - Remove strategy - - } - /> - setOpenDialogue(false)} - onRemove={async e => { - await onSuggestRemove(e); - setOpenDialogue(false); - }} - /> - } - elseShow={ - setOpenDialogue(false)} - onRemove={onRemove} - /> - } - /> - - ); -}; diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/MenuStrategyRemove/MenuStrategyRemove.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/MenuStrategyRemove/MenuStrategyRemove.tsx index 8790e9716b..71e0a0fefd 100644 --- a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/MenuStrategyRemove/MenuStrategyRemove.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentAccordionBody/StrategyDraggableItem/StrategyItem/MenuStrategyRemove/MenuStrategyRemove.tsx @@ -21,6 +21,7 @@ import { } from '@server/types/permissions'; import { useHasProjectEnvironmentAccess } from 'hooks/useHasAccess'; import { + MENU_STRATEGY_REMOVE, STRATEGY_FORM_REMOVE_ID, STRATEGY_REMOVE_MENU_BTN, } from 'utils/testIds'; @@ -91,6 +92,7 @@ const MenuStrategyRemove = ({ onClick={handleClose} transformOrigin={{ horizontal: 'right', vertical: 'top' }} anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }} + data-testid={MENU_STRATEGY_REMOVE} > = ({ orderNumber, headerChildren, }) => { - const { uiConfig } = useUiConfig(); const projectId = useRequiredPathParam('projectId'); const featureId = useRequiredPathParam('featureId'); @@ -79,27 +76,11 @@ export const StrategyItem: FC = ({ > - ( - - )} - elseShow={() => ( - - )} + } diff --git a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.tsx b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.tsx index d5c804d19c..b5aa036031 100644 --- a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.tsx +++ b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.tsx @@ -14,8 +14,6 @@ import { useChangeRequestToggle } from 'hooks/useChangeRequestToggle'; import { EnableEnvironmentDialog } from 'component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelEnvironmentSwitches/FeatureOverviewSidePanelEnvironmentSwitch/EnableEnvironmentDialog'; import { UpdateEnabledMessage } from 'component/changeRequest/ChangeRequestConfirmDialog/ChangeRequestMessages/UpdateEnabledMessage'; import { ChangeRequestDialogue } from 'component/changeRequest/ChangeRequestConfirmDialog/ChangeRequestConfirmDialog'; -import useUiConfig from '../../../../../hooks/api/getters/useUiConfig/useUiConfig'; -import { usePlausibleTracker } from '../../../../../hooks/usePlausibleTracker'; const StyledBoxContainer = styled(Box)<{ 'data-testid': string }>(() => ({ mx: 'auto', @@ -65,13 +63,6 @@ export const FeatureToggleSwitch: VFC = ({ .find(env => env.name === environmentName) ?.strategies.filter(strategy => strategy.disabled).length ?? 0; - const { uiConfig } = useUiConfig(); - const showStrategyImprovements = Boolean( - uiConfig.flags.strategyImprovements - ); - - const { trackEvent } = usePlausibleTracker(); - const handleToggleEnvironmentOn = async ( shouldActivateDisabled = false ) => { @@ -125,10 +116,7 @@ export const FeatureToggleSwitch: VFC = ({ const onClick = async (e: React.MouseEvent) => { if (isChangeRequestConfigured(environmentName)) { e.preventDefault(); - if ( - featureHasOnlyDisabledStrategies() && - showStrategyImprovements - ) { + if (featureHasOnlyDisabledStrategies()) { setShowEnabledDialog(true); } else { onChangeRequestToggle( @@ -145,7 +133,7 @@ export const FeatureToggleSwitch: VFC = ({ return; } - if (featureHasOnlyDisabledStrategies() && showStrategyImprovements) { + if (featureHasOnlyDisabledStrategies()) { setShowEnabledDialog(true); } else { await handleToggleEnvironmentOn(); @@ -153,11 +141,6 @@ export const FeatureToggleSwitch: VFC = ({ }; const onActivateStrategies = async () => { - await trackEvent('strategyImprovements', { - props: { - eventType: 'activate disabled strategies', - }, - }); if (isChangeRequestConfigured(environmentName)) { onChangeRequestToggle( feature.name, @@ -172,11 +155,6 @@ export const FeatureToggleSwitch: VFC = ({ }; const onAddDefaultStrategy = async () => { - await trackEvent('strategyImprovements', { - props: { - eventType: 'add default strategy', - }, - }); if (isChangeRequestConfigured(environmentName)) { onChangeRequestToggle( feature.name, @@ -223,16 +201,14 @@ export const FeatureToggleSwitch: VFC = ({ onClick={onClick} /> - {showStrategyImprovements && ( - setShowEnabledDialog(false)} - environment={environmentName} - disabledStrategiesCount={disabledStrategiesCount} - onActivateDisabledStrategies={onActivateStrategies} - onAddDefaultStrategy={onAddDefaultStrategy} - /> - )} + setShowEnabledDialog(false)} + environment={environmentName} + disabledStrategiesCount={disabledStrategiesCount} + onActivateDisabledStrategies={onActivateStrategies} + onAddDefaultStrategy={onAddDefaultStrategy} + /> - { - setStrategy(prev => ({ - ...prev, - title, - })); - }} - /> - } + { + setStrategy(prev => ({ + ...prev, + title, + })); + }} /> { const location = useLocation(); const navigate = useNavigate(); - const { uiConfig } = useUiConfig(); - const { strategyImprovements } = uiConfig.flags; const tabs: ITab[] = [ { @@ -41,14 +38,11 @@ export const ProjectSettings = () => { id: 'api-access', label: 'API access', }, - ]; - - if (Boolean(strategyImprovements)) { - tabs.push({ + { id: 'default-strategy', label: 'Default strategy', - }); - } + }, + ]; const onChange = (tab: ITab) => { navigate(tab.id); @@ -76,12 +70,10 @@ export const ProjectSettings = () => { element={} /> } /> - {Boolean(strategyImprovements) && ( - } - /> - )} + } + /> } diff --git a/frontend/src/hooks/usePlausibleTracker.ts b/frontend/src/hooks/usePlausibleTracker.ts index 9dc5c872f4..58742c7a2c 100644 --- a/frontend/src/hooks/usePlausibleTracker.ts +++ b/frontend/src/hooks/usePlausibleTracker.ts @@ -25,7 +25,6 @@ export type CustomEvents = | 'notifications' | 'batch_operations' | 'strategyTitle' - | 'strategyImprovements' | 'default_strategy' | 'demo' | 'demo-start' diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index 9a3744f52d..1380393d28 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -48,7 +48,6 @@ export interface IFlags { demo?: boolean; groupRootRoles?: boolean; googleAuthEnabled?: boolean; - strategyImprovements?: boolean; disableBulkToggle?: boolean; segmentContextFieldUsage?: boolean; disableNotifications?: boolean; diff --git a/frontend/src/utils/testIds.ts b/frontend/src/utils/testIds.ts index 555de47a1d..ce6dbd6460 100644 --- a/frontend/src/utils/testIds.ts +++ b/frontend/src/utils/testIds.ts @@ -64,6 +64,7 @@ export const STRATEGY_FORM_SUBMIT_ID = 'STRATEGY_FORM_SUBMIT_ID'; export const STRATEGY_FORM_REMOVE_ID = 'STRATEGY_FORM_REMOVE_ID'; export const STRATEGY_FORM_COPY_ID = 'STRATEGY_FORM_COPY_ID'; export const STRATEGY_REMOVE_MENU_BTN = 'STRATEGY_REMOVE_MENU_BTN'; +export const MENU_STRATEGY_REMOVE = 'MENU_STRATEGY_REMOVE'; /* SPLASH */ export const CLOSE_SPLASH = 'CLOSE_SPLASH'; diff --git a/src/lib/__snapshots__/create-config.test.ts.snap b/src/lib/__snapshots__/create-config.test.ts.snap index fbb6000c45..0a5a0210bc 100644 --- a/src/lib/__snapshots__/create-config.test.ts.snap +++ b/src/lib/__snapshots__/create-config.test.ts.snap @@ -95,7 +95,6 @@ exports[`should create default config 1`] = ` "proPlanAutoCharge": false, "responseTimeWithAppNameKillSwitch": false, "segmentContextFieldUsage": false, - "strategyImprovements": false, "strategySplittedButton": false, "strictSchemaValidation": false, }, @@ -130,7 +129,6 @@ exports[`should create default config 1`] = ` "proPlanAutoCharge": false, "responseTimeWithAppNameKillSwitch": false, "segmentContextFieldUsage": false, - "strategyImprovements": false, "strategySplittedButton": false, "strictSchemaValidation": false, }, diff --git a/src/lib/services/feature-toggle-service.ts b/src/lib/services/feature-toggle-service.ts index 90a9c39008..0d4cd8a11d 100644 --- a/src/lib/services/feature-toggle-service.ts +++ b/src/lib/services/feature-toggle-service.ts @@ -1373,11 +1373,7 @@ class FeatureToggleService { (strategy) => strategy.disabled, ); - if ( - this.flagResolver.isEnabled('strategyImprovements') && - hasDisabledStrategies && - shouldActivateDisabledStrategies - ) { + if (hasDisabledStrategies && shouldActivateDisabledStrategies) { strategies.map(async (strategy) => { return this.updateStrategy( strategy.id, @@ -1406,7 +1402,6 @@ class FeatureToggleService { environment, ); const strategy = - this.flagResolver.isEnabled('strategyImprovements') && projectEnvironmentDefaultStrategy != null ? getProjectDefaultStrategy( projectEnvironmentDefaultStrategy, @@ -1658,7 +1653,7 @@ class FeatureToggleService { return this.featureToggleStore.getAll({ archived, project }); } - async getProjectId(name: string): Promise { + async getProjectId(name: string): Promise { return this.featureToggleStore.getProjectId(name); } diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index 0e70c38bf3..828f70ab1a 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -18,7 +18,6 @@ export type IFlagKey = | 'groupRootRoles' | 'migrationLock' | 'demo' - | 'strategyImprovements' | 'googleAuthEnabled' | 'disableBulkToggle' | 'experimentalExtendedTelemetry' @@ -87,10 +86,6 @@ const flags: IFlags = { ), migrationLock: parseEnvVarBoolean(process.env.MIGRATION_LOCK, false), demo: parseEnvVarBoolean(process.env.UNLEASH_DEMO, false), - strategyImprovements: parseEnvVarBoolean( - process.env.UNLEASH_STRATEGY_IMPROVEMENTS, - false, - ), strategySplittedButton: parseEnvVarBoolean( process.env.UNLEASH_STRATEGY_SPLITTED_BUTTON, false, diff --git a/src/server-dev.ts b/src/server-dev.ts index 77643d229a..27aa53725c 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -37,7 +37,6 @@ process.nextTick(async () => { embedProxyFrontend: true, anonymiseEventLog: false, responseTimeWithAppNameKillSwitch: false, - strategyImprovements: true, segmentContextFieldUsage: true, advancedPlayground: true, strategySplittedButton: true,