diff --git a/frontend/src/__tests__/main.test.tsx b/frontend/src/__tests__/main.test.tsx
new file mode 100644
index 00000000..ea92522c
--- /dev/null
+++ b/frontend/src/__tests__/main.test.tsx
@@ -0,0 +1,48 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+
+jest.mock('../App.tsx', () => ({
+ __esModule: true,
+ default: () =>
App
,
+}));
+
+jest.mock('@/components/utils/ThemeProvider.tsx', () => ({
+ ThemeProvider: ({ children }: { children: React.ReactNode }) => (
+ {children}
+ ),
+}));
+
+describe('main.tsx', () => {
+ beforeEach(() => {
+ document.body.innerHTML = '';
+ });
+
+ it('has root element available for React app', () => {
+ const rootElement = document.getElementById('root');
+ expect(rootElement).toBeInTheDocument();
+ expect(rootElement).not.toBeNull();
+ });
+
+ it('can create React root without errors', () => {
+ const rootElement = document.getElementById('root');
+ expect(() => {
+ ReactDOM.createRoot(rootElement!);
+ }).not.toThrow();
+ });
+
+ it('imports required React dependencies', () => {
+ expect(React).toBeDefined();
+ expect(ReactDOM).toBeDefined();
+ expect(React.StrictMode).toBeDefined();
+ });
+
+ it('verifies App and ThemeProvider components are available', () => {
+ const App = require('../App.tsx').default;
+ const { ThemeProvider } = require('@/components/utils/ThemeProvider.tsx');
+
+ expect(App).toBeDefined();
+ expect(ThemeProvider).toBeDefined();
+ expect(typeof App).toBe('function');
+ expect(typeof ThemeProvider).toBe('function');
+ });
+});