diff --git a/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/__tests__/local-footer.spec.tsx b/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/__tests__/local-footer.spec.tsx
new file mode 100644
index 000000000000..5f6c2669c77f
--- /dev/null
+++ b/packages/bot-web-ui/src/components/dashboard/dashboard-component/load-bot-preview/__tests__/local-footer.spec.tsx
@@ -0,0 +1,66 @@
+import React from 'react';
+import { 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';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import userEvent from '@testing-library/user-event';
+import { mock_ws } from 'Utils/mock';
+import RootStore from 'Stores/root-store';
+import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore';
+import LocalFooter from '../local-footer';
+
+jest.mock('@deriv/shared', () => ({
+ ...jest.requireActual('@deriv/shared'),
+ isMobile: 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());
+
+describe('LocalFooter', () => {
+ let wrapper: ({ children }: { children: JSX.Element }) => JSX.Element, mock_DBot_store: RootStore | undefined;
+
+ beforeAll(() => {
+ const mock_store = mockStore({});
+ mock_DBot_store = mockDBotStore(mock_store, mock_ws);
+
+ wrapper = ({ children }: { children: JSX.Element }) => (
+
+
+ {children}
+
+
+ );
+ });
+
+ it('should render LocalFooter', () => {
+ const { container } = render(, { wrapper });
+ expect(container).toBeInTheDocument();
+ });
+
+ it('should open modal on click open button', async () => {
+ render(, { wrapper });
+ const open_button = screen.getByText('Open');
+ await userEvent.click(open_button);
+ expect(mock_DBot_store?.load_modal?.is_load_modal_open).toBeTruthy();
+ });
+
+ it('should render cancel button on mobile', () => {
+ (isMobile as jest.Mock).mockReturnValueOnce(true);
+ render(, { wrapper });
+ expect(screen.getByText('Cancel')).toBeInTheDocument();
+ });
+
+ it('should reset local file on cancel button click', async () => {
+ (isMobile as jest.Mock).mockReturnValueOnce(true);
+ render(, { wrapper });
+ const cancel_button = screen.getByText('Cancel');
+ await userEvent.click(cancel_button);
+ expect(mock_DBot_store?.load_modal?.loaded_local_file).toBeNull();
+ });
+});