diff --git a/packages/bot-web-ui/src/components/audio/__tests__/audio.spec.tsx b/packages/bot-web-ui/src/components/audio/__tests__/audio.spec.tsx
index 8384cc3f15c6..a1c73bacdee8 100644
--- a/packages/bot-web-ui/src/components/audio/__tests__/audio.spec.tsx
+++ b/packages/bot-web-ui/src/components/audio/__tests__/audio.spec.tsx
@@ -1,5 +1,4 @@
import React from 'react';
-import exp from 'constants';
import { render, screen } from '@testing-library/react';
import Audio from '../audio';
diff --git a/packages/bot-web-ui/src/components/bot-notification-messages/__tests__/bot-notification-messages.spec.tsx b/packages/bot-web-ui/src/components/bot-notification-messages/__tests__/bot-notification-messages.spec.tsx
new file mode 100644
index 000000000000..0341c0e713a0
--- /dev/null
+++ b/packages/bot-web-ui/src/components/bot-notification-messages/__tests__/bot-notification-messages.spec.tsx
@@ -0,0 +1,73 @@
+import React from 'react';
+import { mockStore, StoreProvider } from '@deriv/stores';
+import { render, screen } from '@testing-library/react';
+import { mock_ws } from 'Utils/mock';
+import RootStore from 'Stores/root-store';
+import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore';
+import BotNotificationMessages from '../bot-notification-messages';
+
+jest.mock('@deriv/bot-skeleton/src/scratch/blockly', () => jest.fn());
+jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => ({
+ saveRecentWorkspace: jest.fn(),
+ unHighlightAllBlocks: jest.fn(),
+}));
+jest.mock('@deriv/bot-skeleton/src/scratch/hooks/block_svg', () => jest.fn());
+jest.mock('@deriv/bot-skeleton', () => ({
+ ...jest.requireActual('@deriv/bot-skeleton'),
+ blocksCoordinate: jest.fn(),
+}));
+
+describe('BotNotificationMessages', () => {
+ let wrapper: ({ children }: { children: JSX.Element }) => JSX.Element, mock_DBot_store: RootStore | undefined;
+ beforeAll(() => {
+ const mock_store = mockStore({
+ ui: {
+ notification_messages_ui: jest
+ .fn()
+ .mockReturnValue(
Mocked Notification Message
) as React.ElementType,
+ },
+ });
+ mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+
+ wrapper = ({ children }: { children: JSX.Element }) => (
+
+
+ {children}
+
+
+ );
+ });
+
+ it('should render BotNotificationMessages', () => {
+ const { container } = render(, {
+ wrapper,
+ });
+ expect(container).toBeInTheDocument();
+ expect(screen.getByTestId('dt_notifications_container')).toHaveClass('notifications-container');
+ });
+
+ it('should apply notifications-container__dashboard class when active tab is 0 and is_info_panel_visible is true', () => {
+ mock_DBot_store!.dashboard.setInfoPanelVisibility(true);
+
+ render(, {
+ wrapper,
+ });
+
+ expect(screen.getByTestId('dt_notifications_container')).toHaveClass(
+ 'notifications-container notifications-container__dashboard'
+ );
+ });
+
+ it('should apply notifications-container--panel-open class when is_drawer_open is true and active tab has a value of 1 or 2', () => {
+ mock_DBot_store!.dashboard.setActiveTab(1);
+ mock_DBot_store!.run_panel.toggleDrawer(true);
+
+ render(, {
+ wrapper,
+ });
+
+ expect(screen.getByTestId('dt_notifications_container')).toHaveClass(
+ 'notifications-container notifications-container--panel-open'
+ );
+ });
+});
diff --git a/packages/bot-web-ui/src/components/bot-notification-messages/bot-notification-messages.tsx b/packages/bot-web-ui/src/components/bot-notification-messages/bot-notification-messages.tsx
index 34bc22b1a3a6..5f915cea319a 100644
--- a/packages/bot-web-ui/src/components/bot-notification-messages/bot-notification-messages.tsx
+++ b/packages/bot-web-ui/src/components/bot-notification-messages/bot-notification-messages.tsx
@@ -20,6 +20,7 @@ const BotNotificationMessages = observer(() => {
'notifications-container__dashboard': active_tab === 0 && is_info_panel_visible,
'notifications-container--panel-open': [BOT_BUILDER, CHART].includes(active_tab) && is_drawer_open,
})}
+ data-testid='dt_notifications_container'
>
diff --git a/packages/bot-web-ui/src/components/chart/__tests__/toolbar-widgets.spec.tsx b/packages/bot-web-ui/src/components/chart/__tests__/toolbar-widgets.spec.tsx
new file mode 100644
index 000000000000..07a9b8c8eedc
--- /dev/null
+++ b/packages/bot-web-ui/src/components/chart/__tests__/toolbar-widgets.spec.tsx
@@ -0,0 +1,71 @@
+import React from 'react';
+import { isDesktop, isMobile } from '@deriv/shared';
+import { mockStore, StoreProvider } from '@deriv/stores';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { render, screen } from '@testing-library/react';
+import { mock_ws } from 'Utils/mock';
+import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore';
+import ToolbarWidgets from '../toolbar-widgets';
+
+jest.mock('@deriv/shared', () => ({
+ ...jest.requireActual('@deriv/shared'),
+ isMobile: jest.fn(),
+ isDesktop: jest.fn(),
+}));
+
+jest.mock('@deriv/bot-skeleton/src/scratch/blockly', () => jest.fn());
+jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => ({
+ saveRecentWorkspace: jest.fn(),
+ unHighlightAllBlocks: jest.fn(),
+}));
+jest.mock('@deriv/bot-skeleton/src/scratch/hooks/block_svg', () => jest.fn());
+
+// // Mocking the imports from @deriv/deriv-charts
+jest.mock('@deriv/deriv-charts', () => ({
+ ...jest.requireActual('@deriv/deriv-charts'),
+ __esModule: true,
+ ChartMode: jest.fn(() => Mocked ChartMode
),
+ DrawTools: jest.fn(() => Mocked DrawTools
),
+ Share: jest.fn(() => Mocked Share
),
+ StudyLegend: jest.fn(() => Mocked StudyLegend
),
+ ToolbarWidget: jest.fn(({ children }) => {children}
),
+ Views: jest.fn(() => Mocked Views
),
+}));
+
+describe('ToolbarWidgets', () => {
+ let wrapper: ({ children }: { children: JSX.Element }) => JSX.Element;
+
+ const mockUpdateChartType = jest.fn();
+ const mockUpdateGranularity = jest.fn();
+
+ beforeAll(() => {
+ const mock_store = mockStore({});
+ const mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+
+ wrapper = ({ children }: { children: JSX.Element }) => (
+
+
+ {children}
+
+
+ );
+ });
+
+ it('should render ToolbarWidgets in desktop', () => {
+ (isMobile as jest.Mock).mockReturnValueOnce(false);
+ (isDesktop as jest.Mock).mockReturnValueOnce(true);
+ render(, {
+ wrapper,
+ });
+ expect(screen.getByText('Mocked StudyLegend')).toBeInTheDocument();
+ });
+
+ it('should render ToolbarWidgets in mobile', () => {
+ (isMobile as jest.Mock).mockReturnValueOnce(true);
+ (isDesktop as jest.Mock).mockReturnValueOnce(false);
+ render(, {
+ wrapper,
+ });
+ expect(screen.queryByText('Mocked StudyLegend')).not.toBeInTheDocument();
+ });
+});
diff --git a/packages/bot-web-ui/src/components/contract-card-loading/__tests__/contract-card-loading.spec.tsx b/packages/bot-web-ui/src/components/contract-card-loading/__tests__/contract-card-loading.spec.tsx
new file mode 100644
index 000000000000..fa7935458d2f
--- /dev/null
+++ b/packages/bot-web-ui/src/components/contract-card-loading/__tests__/contract-card-loading.spec.tsx
@@ -0,0 +1,57 @@
+import React from 'react';
+import { mockStore, StoreProvider } from '@deriv/stores';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { render, screen } from '@testing-library/react';
+import { mock_ws } from 'Utils/mock';
+import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore';
+import ContractCardLoader from '../contract-card-loading';
+
+jest.mock('@deriv/bot-skeleton/src/scratch/blockly', () => jest.fn());
+jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => ({
+ saveRecentWorkspace: jest.fn(),
+ unHighlightAllBlocks: jest.fn(),
+}));
+jest.mock('@deriv/bot-skeleton/src/scratch/hooks/block_svg', () => jest.fn());
+
+describe('ContractCardLoader', () => {
+ let wrapper: ({ children }: { children: JSX.Element }) => JSX.Element;
+ beforeAll(() => {
+ const mock_store = mockStore({});
+ const mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+
+ wrapper = ({ children }: { children: JSX.Element }) => (
+
+
+ {children}
+
+
+ );
+ });
+
+ it('should render ContractCardLoader', () => {
+ render(, {
+ wrapper,
+ });
+ expect(screen.getByTestId('contract-card-loader')).toBeInTheDocument();
+ });
+
+ it('should render ContractCardLoader with default speed value', () => {
+ render(, {
+ wrapper,
+ });
+ const svgElement = screen.getByTestId('contract-card-loader');
+ // eslint-disable-next-line testing-library/no-node-access
+ const stopElement = svgElement.querySelector('animate'); // accessing the node directly to test the animation duration
+ expect(stopElement).toHaveAttribute('dur', '3s');
+ });
+
+ it('should render ContractCardLoader with speed value passed as prop', () => {
+ render(, {
+ wrapper,
+ });
+ const svgElement = screen.getByTestId('contract-card-loader');
+ // eslint-disable-next-line testing-library/no-node-access
+ const stopElement = svgElement.querySelector('animate'); // accessing the node directly to test the animation duration
+ expect(stopElement).toHaveAttribute('dur', '5s');
+ });
+});
diff --git a/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx b/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx
index cc0ff4dcc85c..fe9d03e014e6 100644
--- a/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx
+++ b/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx
@@ -12,6 +12,7 @@ const ContractCardLoader = ({ speed = 3 }: TContractCardLoader) => (
speed={speed}
backgroundColor={'var(--general-section-2)'}
foregroundColor={'var(--general-hover)'}
+ data-testid='contract-card-loader'
>
diff --git a/packages/bot-web-ui/src/components/contract-result-overlay/contract-result-overlay.spec.tsx b/packages/bot-web-ui/src/components/contract-result-overlay/contract-result-overlay.spec.tsx
new file mode 100644
index 000000000000..155ca9a8418b
--- /dev/null
+++ b/packages/bot-web-ui/src/components/contract-result-overlay/contract-result-overlay.spec.tsx
@@ -0,0 +1,54 @@
+import React from 'react';
+import { mockStore, StoreProvider } from '@deriv/stores';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { render, screen } from '@testing-library/react';
+import { mock_ws } from 'Utils/mock';
+import RootStore from 'Stores/index';
+import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore';
+import ContractResultOverlay from './contract-result-overlay';
+
+jest.mock('@deriv/bot-skeleton/src/scratch/blockly', () => jest.fn());
+jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => ({
+ saveRecentWorkspace: jest.fn(),
+ unHighlightAllBlocks: jest.fn(),
+}));
+jest.mock('@deriv/bot-skeleton/src/scratch/hooks/block_svg', () => jest.fn());
+
+describe('ContractResultOverlay', () => {
+ let wrapper: ({ children }: { children: JSX.Element }) => JSX.Element, mock_DBot_store: RootStore | undefined;
+
+ beforeEach(() => {
+ jest.resetModules();
+ const mock_store = mockStore({});
+ mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+
+ wrapper = ({ children }: { children: JSX.Element }) => (
+
+
+ {children}
+
+
+ );
+ });
+
+ it('should render the ContractResultOverlay component', () => {
+ const { container } = render(, {
+ wrapper,
+ });
+ expect(container).toBeInTheDocument();
+ });
+
+ it('should show contract won', () => {
+ render(, {
+ wrapper,
+ });
+ expect(screen.getByText('Won')).toBeInTheDocument();
+ });
+
+ it('should show contract lost', () => {
+ render(, {
+ wrapper,
+ });
+ expect(screen.getByText('Lost')).toBeInTheDocument();
+ });
+});
diff --git a/packages/bot-web-ui/src/components/dashboard/__tests__/react-joyride-wrapper.spec.tsx b/packages/bot-web-ui/src/components/dashboard/__tests__/react-joyride-wrapper.spec.tsx
new file mode 100644
index 000000000000..29e7ce344ece
--- /dev/null
+++ b/packages/bot-web-ui/src/components/dashboard/__tests__/react-joyride-wrapper.spec.tsx
@@ -0,0 +1,47 @@
+import React from 'react';
+import { mockStore, StoreProvider } from '@deriv/stores';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { render, screen } from '@testing-library/react';
+import { mock_ws } from 'Utils/mock';
+import { DBotStoreProvider, mockDBotStore } from '../../../stores/useDBotStore';
+import ReactJoyrideWrapper from '../react-joyride-wrapper';
+
+jest.mock('@deriv/bot-skeleton/src/scratch/blockly', () => jest.fn());
+jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => ({
+ saveRecentWorkspace: jest.fn(),
+ unHighlightAllBlocks: jest.fn(),
+}));
+jest.mock('@deriv/bot-skeleton/src/scratch/hooks/block_svg', () => jest.fn());
+jest.mock('react-joyride', () => jest.fn(() => ReactJoyride
));
+
+describe('ReactJoyrideWrapper', () => {
+ const mock_store = mockStore({});
+ const mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+
+ const mocked_props = {
+ steps: [
+ {
+ target: '.animation__wrapper',
+ content: Content step 1
,
+ },
+ {
+ target: '.animation__wrapper',
+ content: Content step 2
,
+ },
+ ],
+ styles: {},
+ run: true,
+ };
+
+ it('should render ReactJoyrideWrapper', () => {
+ render(
+
+
+
+
+
+ );
+
+ expect(screen.getByText('ReactJoyride')).toBeInTheDocument();
+ });
+});
diff --git a/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbar/icon-button.tsx b/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbar/icon-button.tsx
deleted file mode 100644
index 0800bcf6aaed..000000000000
--- a/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbar/icon-button.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import React from 'react';
-import { Icon, Popover } from '@deriv/components';
-import { popover_zindex } from 'Constants/z-indexes';
-
-type TIconButton = {
- icon: string;
- icon_id: string;
- iconOnClick: () => void;
- icon_color?: string;
- popover_message: string;
-};
-
-const IconButton = ({ popover_message, icon, icon_id, icon_color, iconOnClick }: TIconButton) => {
- return (
-
-
-
- );
-};
-
-export default IconButton;
diff --git a/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/__tests__/search-icon.spec.tsx b/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/__tests__/search-icon.spec.tsx
new file mode 100644
index 000000000000..2a6b9d586a37
--- /dev/null
+++ b/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/__tests__/search-icon.spec.tsx
@@ -0,0 +1,59 @@
+import React from 'react';
+import { render, screen } from '@testing-library/react';
+import SearchIcon from '../search-box/search-icon';
+
+jest.mock('@deriv/components', () => {
+ const original_module = jest.requireActual('@deriv/components');
+ return {
+ ...original_module,
+ Icon: jest.fn(props => (
+
+ Icon
+
+ )),
+ };
+});
+
+const mocked_props = {
+ search: 'text',
+ is_search_loading: false,
+ onClick: jest.fn(),
+};
+
+describe('SearchIcon', () => {
+ it('should render the SearchIcon component', () => {
+ render();
+
+ const icon_element = screen.getByText('Icon');
+
+ expect(icon_element).toBeInTheDocument();
+ });
+
+ it('should render the SearchIcon component with IcCloseCircle icon and has correct props when search value is not empty', () => {
+ render();
+
+ const icon_close_circle = screen.getByText('Icon');
+
+ expect(icon_close_circle).toBeInTheDocument();
+ expect(icon_close_circle).toHaveAttribute('data-testid-color', 'secondary');
+ expect(icon_close_circle).toHaveAttribute('data-testid-icon', 'IcCloseCircle');
+ });
+
+ it('should render search icon when search is empty', () => {
+ render();
+
+ const search_icon = screen.getByText('Icon');
+
+ expect(search_icon).toBeInTheDocument();
+ expect(search_icon).toHaveAttribute('data-testid-icon', 'IcSearch');
+ });
+
+ it('should render loader when is_search_loading is true', () => {
+ render();
+
+ const loader = screen.getByTestId('loader');
+
+ expect(loader).toBeInTheDocument();
+ expect(loader).toHaveClass('loader', { exact: true });
+ });
+});
diff --git a/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/search-box/search-icon.tsx b/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/search-box/search-icon.tsx
index 4083b76ce9fb..314af5040856 100644
--- a/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/search-box/search-icon.tsx
+++ b/packages/bot-web-ui/src/components/dashboard/bot-builder/toolbox/search-box/search-icon.tsx
@@ -9,7 +9,7 @@ type TSearchIcon = {
const SearchIcon = ({ search, is_search_loading, onClick }: TSearchIcon) => {
if (!search) return ;
- if (is_search_loading) return ;
+ if (is_search_loading) return ;
return ;
};
diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/dashboard-component.spec.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/dashboard-component.spec.tsx
index 9598e8cad2fa..8a4818ba48c3 100644
--- a/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/dashboard-component.spec.tsx
+++ b/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/dashboard-component.spec.tsx
@@ -2,7 +2,6 @@ import React from 'react';
import { isMobile } from '@deriv/shared';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
-import Sidebar from '../sidebar';
import UserGuide from '../user-guide';
jest.mock('@deriv/components', () => {
@@ -66,12 +65,4 @@ describe('', () => {
expect(screen.getByTestId('btn-user-guide')).toBeInTheDocument();
expect(use_guide_button).toBeEnabled();
});
-
- it('on user guide button click it should render the tutorials tab', () => {
- render();
- const use_guide_button = screen.getByTestId('btn-user-guide');
- userEvent.click(use_guide_button);
- render();
- expect(mocked_props.setActiveTab).toHaveBeenCalledWith(3);
- });
});
diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/run-strategy.spec.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/run-strategy.spec.tsx
new file mode 100644
index 000000000000..76405bb66b3a
--- /dev/null
+++ b/packages/bot-web-ui/src/components/dashboard/dashboard-component/__tests__/run-strategy.spec.tsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import { render, screen } from '@testing-library/react';
+import RunStrategy from '../run-strategy';
+
+jest.mock('../../../trade-animation/trade-animation', () => jest.fn(() => TradeAnimation
));
+
+describe('RunStrategy', () => {
+ beforeEach(() => {
+ render();
+ });
+
+ it('should render the RunStrategy component', () => {
+ const run_strategy = screen.getByTestId('dt_run_strategy');
+
+ expect(run_strategy).toBeInTheDocument();
+ });
+
+ it('should render the TradeAnimation component inside of RunStrategy', () => {
+ const trade_animation = screen.getByText('TradeAnimation');
+
+ expect(trade_animation).toBeInTheDocument();
+ });
+});
diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/__tests__/bot-preview.spec.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/__tests__/bot-preview.spec.tsx
new file mode 100644
index 000000000000..e6206dfc0cb7
--- /dev/null
+++ b/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/__tests__/bot-preview.spec.tsx
@@ -0,0 +1,32 @@
+import React from 'react';
+import { mockStore, StoreProvider } from '@deriv/stores';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { render } from '@testing-library/react';
+import { mock_ws } from 'Utils/mock';
+import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore';
+import BotPreview from '../bot-preview';
+
+jest.mock('@deriv/bot-skeleton/src/scratch/blockly', () => jest.fn());
+jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => ({
+ saveRecentWorkspace: jest.fn(),
+ unHighlightAllBlocks: jest.fn(),
+}));
+jest.mock('@deriv/bot-skeleton/src/scratch/hooks/block_svg', () => jest.fn());
+
+describe('BotPreview', () => {
+ it('should render BotPreview component with ref', () => {
+ const mock_store = mockStore({});
+ const mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+ const ref = React.createRef();
+
+ render(
+
+
+
+
+
+ );
+
+ expect(ref.current).toBeInTheDocument();
+ });
+});
diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/bot-preview.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/bot-preview.tsx
index 1c39c2a400b0..8131c5d5d364 100644
--- a/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/bot-preview.tsx
+++ b/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/bot-preview.tsx
@@ -1,8 +1,8 @@
-import React from 'react';
+import React, { RefObject } from 'react';
import WorkspaceControl from './workspace-control';
type TBotPreview = {
- id_ref: HTMLElement | React.ReactNode | null;
+ id_ref: RefObject;
};
const BotPreview = ({ id_ref }: TBotPreview) => {
diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/run-strategy.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/run-strategy.tsx
index bef7c154a4d6..57636875a838 100644
--- a/packages/bot-web-ui/src/components/dashboard/dashboard-component/run-strategy.tsx
+++ b/packages/bot-web-ui/src/components/dashboard/dashboard-component/run-strategy.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import TradeAnimation from 'Components/trade-animation';
const RunStrategy = () => (
-
+
);
diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/sidebar.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/sidebar.tsx
deleted file mode 100644
index 18983c8264b5..000000000000
--- a/packages/bot-web-ui/src/components/dashboard/dashboard-component/sidebar.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import React from 'react';
-import classNames from 'classnames';
-import { Icon } from '@deriv/components';
-import { SIDEBAR_INTRO } from './constants';
-import IntroCard from './intro-card';
-
-type TSideBar = {
- is_sidebar_open: boolean;
- setSideBarState: (state: boolean) => void;
-};
-
-const Sidebar = ({ setSideBarState, is_sidebar_open }: TSideBar) => {
- return (
-
-
- {
- setSideBarState(false);
- }}
- />
-
- {SIDEBAR_INTRO.map(sidebar_item => {
- const { label } = sidebar_item;
- return (
-
- ;
-
- );
- })}
-
- );
-};
-
-export default Sidebar;