From 3f7b3a4961d76c9a57794116867b3ab06111f77a Mon Sep 17 00:00:00 2001 From: Rajat yadav Date: Sat, 27 Dec 2025 02:28:05 +0530 Subject: [PATCH] test: add main.tsx test coverage Add test coverage for main.tsx entry point --- frontend/src/__tests__/main.test.tsx | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 frontend/src/__tests__/main.test.tsx 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'); + }); +});