-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathCodeView-test.js
More file actions
53 lines (46 loc) · 1.46 KB
/
CodeView-test.js
File metadata and controls
53 lines (46 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import React from 'react';
import { render, screen } from '@testing-library/react';
import CodeView from '../src/CodeView';
import MarkdownRenderer from '../src/MarkdownRenderer';
// Mock the MarkdownRenderer component
jest.mock('../src/MarkdownRenderer', () =>
jest.fn(({ children }) => (
<div data-testid="mock-markdown-renderer">{children}</div>
))
);
describe('CodeView', () => {
it('renders without crashing', () => {
render(<CodeView sourceCode="const a = 1;" />);
expect(screen.getByTestId('mock-markdown-renderer')).toBeInTheDocument();
});
it('passes copyButtonProps to MarkdownRenderer', () => {
const mockCopyButtonProps = {
'data-testid': 'custom-copy-btn',
className: 'custom-class',
};
render(
<CodeView
sourceCode="const a = 1;"
copyButtonProps={mockCopyButtonProps}
/>
);
// Check if MarkdownRenderer was called with the correct props
expect(MarkdownRenderer).toHaveBeenCalledWith(
expect.objectContaining({
copyButtonProps: mockCopyButtonProps
}),
expect.anything()
);
});
it('passes sourceCode to Renderer', () => {
const sourceCode = 'const a = 1;';
render(<CodeView sourceCode={sourceCode} />);
// Check if the source code is passed down to the MarkdownRenderer
expect(MarkdownRenderer).toHaveBeenCalledWith(
expect.objectContaining({
children: sourceCode
}),
expect.anything()
);
});
});