+    return 
         {title}
         {subtitle && {subtitle}}
     
;
diff --git a/lib/static/new-ui/components/RunTest/index.module.css b/lib/static/new-ui/components/RunTest/index.module.css
index 533071a9f..d26aa4c62 100644
--- a/lib/static/new-ui/components/RunTest/index.module.css
+++ b/lib/static/new-ui/components/RunTest/index.module.css
@@ -1,14 +1,3 @@
-.buttons-container {
-    display: flex;
-    align-items: center;
-    gap: 8px;
-    margin-left: auto;
-}
-
-.divider {
-    height: 24px;
-}
-
 .retry-button {
     composes: regular-button from global, action-button from global;
 }
diff --git a/lib/static/new-ui/components/RunTest/index.tsx b/lib/static/new-ui/components/RunTest/index.tsx
index 648192a97..7f53624c7 100644
--- a/lib/static/new-ui/components/RunTest/index.tsx
+++ b/lib/static/new-ui/components/RunTest/index.tsx
@@ -1,66 +1,45 @@
-import React, {ReactNode} from 'react';
+import React, {forwardRef} from 'react';
 
 import styles from './index.module.css';
-import {IconButton} from '@/static/new-ui/components/IconButton';
-import {Button, Divider, Icon, Spin} from '@gravity-ui/uikit';
-import {ArrowRotateRight, CirclePlay} from '@gravity-ui/icons';
+import {Button, ButtonProps, Icon, Spin} from '@gravity-ui/uikit';
+import {ArrowRotateRight} from '@gravity-ui/icons';
 import {thunkRunTest} from '@/static/modules/actions';
-import {toggleTimeTravelPlayerVisibility} from '@/static/modules/actions/snapshots';
 import {useDispatch, useSelector} from 'react-redux';
-import {isTimeTravelPlayerAvailable} from '../../features/suites/selectors';
 import {RunTestsFeature} from '@/constants';
 import {useAnalytics} from '../../hooks/useAnalytics';
 import type {BrowserEntity} from '@/static/new-ui/types/store';
+import {isFeatureAvailable} from '../../utils/features';
 
 interface RunTestProps {
-    showPlayer?: boolean;
     browser: BrowserEntity | null;
+    buttonText?: string | null;
+    buttonProps?: ButtonProps;
 }
 
-export const RunTest = ({showPlayer = true, browser}: RunTestProps): ReactNode => {
-    const isPlayerVisible = useSelector(state => state.ui.suitesPage.isSnapshotsPlayerVisible);
-    const isRunning = useSelector(state => state.running);
+export const RunTestButton = forwardRef
(
+    ({browser, buttonProps, buttonText}, ref) => {
+        const isRunning = useSelector(state => state.running);
 
-    const analytics = useAnalytics();
-    const dispatch = useDispatch();
-    const isRunTestsAvailable = useSelector(state => state.app.availableFeatures)
-        .find(feature => feature.name === RunTestsFeature.name);
+        const analytics = useAnalytics();
+        const dispatch = useDispatch();
+        const isRunTestsAvailable = isFeatureAvailable(RunTestsFeature);
 
-    const isPlayerAvailable = useSelector(isTimeTravelPlayerAvailable);
+        const onRetryTestHandler = (): void => {
+            if (browser) {
+                analytics?.trackFeatureUsage({featureName: 'Retry test button click in test control panel'});
+                dispatch(thunkRunTest({test: {testName: browser.parentId, browserName: browser.name}}));
+            }
+        };
 
-    const onRetryTestHandler = (): void => {
-        if (browser) {
-            analytics?.trackFeatureUsage({featureName: 'Retry test button click in test control panel'});
-            dispatch(thunkRunTest({test: {testName: browser.parentId, browserName: browser.name}}));
+        if (!isRunTestsAvailable) {
+            return null;
         }
-    };
 
-    const onTogglePlayerVisibility = (): void => {
-        analytics?.trackFeatureUsage({featureName: 'Toggle time travel player visibility'});
-        dispatch(toggleTimeTravelPlayerVisibility(!isPlayerVisible));
-    };
+        // eslint-disable-next-line @typescript-eslint/no-explicit-any
+        return ;
+    }
+);
 
-    const showRetryButton = Boolean(isRunTestsAvailable);
-    const showPlayerButton = isPlayerAvailable && showPlayer;
-    const showDivider = showRetryButton && showPlayerButton;
-
-    return (
-        
-            {showPlayerButton && (
-                
}
-                    onClick={onTogglePlayerVisibility}
-                    view='outlined'
-                    selected={isPlayerVisible}
-                />
-            )}
-            {showDivider && }
-            {showRetryButton && (
-                
-            )}
-        
                             
-                                {Object.values(DiffModes).map(diffMode =>
+                                {getAvailableDiffModes('suites').map(diffMode =>
                                     
                                 )}
                             
                             
@@ -164,7 +165,7 @@ export function ScreenshotsTreeViewItem(props: ScreenshotsTreeViewItemProps): Re
             )}
 
             
}>
-                
+                
             
          
     );
diff --git a/lib/static/new-ui/features/suites/components/SuitesPage/index.tsx b/lib/static/new-ui/features/suites/components/SuitesPage/index.tsx
index 4b984dceb..8e1487cbf 100644
--- a/lib/static/new-ui/features/suites/components/SuitesPage/index.tsx
+++ b/lib/static/new-ui/features/suites/components/SuitesPage/index.tsx
@@ -74,9 +74,9 @@ export function SuitesPage(): ReactNode {
             return;
         }
 
-        dispatch(setStrictMatchFilter(false));
-
         if (isInitialized && params.suiteId) {
+            dispatch(setStrictMatchFilter(false));
+
             const treeNode = findTreeNodeByBrowserId(treeData.tree, params.suiteId);
 
             if (!treeNode) {
diff --git a/lib/static/new-ui/features/suites/components/TestControlPanel/index.module.css b/lib/static/new-ui/features/suites/components/TestControlPanel/index.module.css
index 836cf7f1c..720493579 100644
--- a/lib/static/new-ui/features/suites/components/TestControlPanel/index.module.css
+++ b/lib/static/new-ui/features/suites/components/TestControlPanel/index.module.css
@@ -12,3 +12,14 @@
     flex-wrap: wrap;
     gap: 4px;
 }
+
+.buttons-container {
+    display: flex;
+    align-items: center;
+    gap: 8px;
+    margin-left: auto;
+}
+
+.divider {
+    height: 24px;
+}
diff --git a/lib/static/new-ui/features/suites/components/TestControlPanel/index.tsx b/lib/static/new-ui/features/suites/components/TestControlPanel/index.tsx
index 62a055854..d24f588cc 100644
--- a/lib/static/new-ui/features/suites/components/TestControlPanel/index.tsx
+++ b/lib/static/new-ui/features/suites/components/TestControlPanel/index.tsx
@@ -1,11 +1,18 @@
+import {Divider, Icon} from '@gravity-ui/uikit';
+import {CirclePlay} from '@gravity-ui/icons';
 import React, {ReactNode} from 'react';
-import {useSelector} from 'react-redux';
+import {useDispatch, useSelector} from 'react-redux';
 
 import {AttemptPickerItem} from '@/static/new-ui/components/AttemptPickerItem';
 import styles from './index.module.css';
 import classNames from 'classnames';
-import {getCurrentBrowser, getCurrentResultId} from '@/static/new-ui/features/suites/selectors';
-import {RunTest} from '@/static/new-ui/components/RunTest';
+import {getCurrentBrowser, getCurrentResultId, isTimeTravelPlayerAvailable} from '@/static/new-ui/features/suites/selectors';
+import {RunTestButton} from '@/static/new-ui/components/RunTest';
+import {useAnalytics} from '../../../../hooks/useAnalytics';
+import {IconButton} from '../../../../components/IconButton';
+import {isFeatureAvailable} from '../../../../utils/features';
+import {RunTestsFeature} from '@/constants';
+import {toggleTimeTravelPlayerVisibility} from '@/static/modules/actions/snapshots';
 
 interface TestControlPanelProps {
     onAttemptChange?: (browserId: string, resultId: string, attemptIndex: number) => unknown;
@@ -14,6 +21,9 @@ interface TestControlPanelProps {
 export function TestControlPanel(props: TestControlPanelProps): ReactNode {
     const {onAttemptChange} = props;
 
+    const dispatch = useDispatch();
+    const analytics = useAnalytics();
+
     const browserId = useSelector(state => state.app.suitesPage.currentBrowserId);
     const resultIds = useSelector(state => {
         if (browserId && state.tree.browsers.byId[browserId]) {
@@ -32,6 +42,17 @@ export function TestControlPanel(props: TestControlPanelProps): ReactNode {
         onAttemptChange?.(browserId, resultId, attemptIndex);
     };
 
+    const isRunTestsAvailable = isFeatureAvailable(RunTestsFeature);
+    const isPlayerAvailable = useSelector(isTimeTravelPlayerAvailable);
+    const isPlayerVisible = useSelector(state => state.ui.suitesPage.isSnapshotsPlayerVisible);
+
+    const showDivider = isRunTestsAvailable && isPlayerAvailable;
+
+    const onTogglePlayerVisibility = (): void => {
+        analytics?.trackFeatureUsage({featureName: 'Toggle time travel player visibility'});
+        dispatch(toggleTimeTravelPlayerVisibility(!isPlayerVisible));
+    };
+
     return (
         
             
Attempts
@@ -45,7 +66,19 @@ export function TestControlPanel(props: TestControlPanelProps): ReactNode {
                     />
                 ))}
             
-            
+            
+                {isPlayerAvailable && (
+                    
}
+                        onClick={onTogglePlayerVisibility}
+                        view='outlined'
+                        selected={isPlayerVisible}
+                    />
+                )}
+                {showDivider && }
+                
+