Skip to content

Commit 99f5da6

Browse files
authored
test: add main.tsx test coverage (#331)
1 parent 884191b commit 99f5da6

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import React from 'react';
2+
import ReactDOM from 'react-dom/client';
3+
4+
jest.mock('../App.tsx', () => ({
5+
__esModule: true,
6+
default: () => <div data-testid="app">App</div>,
7+
}));
8+
9+
jest.mock('@/components/utils/ThemeProvider.tsx', () => ({
10+
ThemeProvider: ({ children }: { children: React.ReactNode }) => (
11+
<div data-testid="theme-provider">{children}</div>
12+
),
13+
}));
14+
15+
describe('main.tsx', () => {
16+
beforeEach(() => {
17+
document.body.innerHTML = '<div id="root"></div>';
18+
});
19+
20+
it('has root element available for React app', () => {
21+
const rootElement = document.getElementById('root');
22+
expect(rootElement).toBeInTheDocument();
23+
expect(rootElement).not.toBeNull();
24+
});
25+
26+
it('can create React root without errors', () => {
27+
const rootElement = document.getElementById('root');
28+
expect(() => {
29+
ReactDOM.createRoot(rootElement!);
30+
}).not.toThrow();
31+
});
32+
33+
it('imports required React dependencies', () => {
34+
expect(React).toBeDefined();
35+
expect(ReactDOM).toBeDefined();
36+
expect(React.StrictMode).toBeDefined();
37+
});
38+
39+
it('verifies App and ThemeProvider components are available', () => {
40+
const App = require('../App.tsx').default;
41+
const { ThemeProvider } = require('@/components/utils/ThemeProvider.tsx');
42+
43+
expect(App).toBeDefined();
44+
expect(ThemeProvider).toBeDefined();
45+
expect(typeof App).toBe('function');
46+
expect(typeof ThemeProvider).toBe('function');
47+
});
48+
});

0 commit comments

Comments
 (0)