Skip to content

Commit 284b2b6

Browse files
committed
adds jss snippet test
1 parent 174f726 commit 284b2b6

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

src/components/snippets/JsSnippet.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useMemo } from '@wordpress/element';
33
import { __ } from '@wordpress/i18n';
44
import Clipboard from '../common/Clipboard';
55

6-
export default function ({ flag }: { flag: string }): JSX.Element {
6+
const JsSnippet = ({ flag }: { flag: string }) => {
77
const jsSnippet = useMemo(() => {
88
return `import domReady from '@wordpress/dom-ready';
99
domReady(function () {
@@ -22,4 +22,6 @@ domReady(function () {
2222
<Snippet data={jsSnippet} language={'typescript'} />
2323
</div>
2424
);
25-
}
25+
};
26+
27+
export default JsSnippet;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import JsSnippet from '../JsSnippet';
2+
import { render, screen } from '@testing-library/react';
3+
import '@testing-library/jest-dom';
4+
5+
describe('JsSnippet component', () => {
6+
test('should render JsSnippet correctly with passed flag prop', async () => {
7+
render(<JsSnippet flag="testFlag" />);
8+
const result = screen.getByText(/JavaScript Snippet/i);
9+
expect(result).toBeInTheDocument();
10+
});
11+
12+
test('should render the correct JavaScript snippet with the passed flag', async () => {
13+
render(<JsSnippet flag="testFlag" />);
14+
const snip = screen.getByText(/.codebFeatureFlags.isEnabled/i);
15+
expect(snip).toBeInTheDocument();
16+
});
17+
18+
test('should update the JavaScript snippet when the flag prop changes', async () => {
19+
const { rerender } = render(<JsSnippet flag="testFlag1" />);
20+
let snip = screen.getByText(/testFlag1'/i);
21+
expect(snip).toBeInTheDocument();
22+
rerender(<JsSnippet flag="testFlag2" />);
23+
snip = screen.queryByText(/'testFlag1'/i);
24+
expect(snip).toBeNull();
25+
snip = screen.getByText(/'testFlag2'/i);
26+
expect(snip).toBeInTheDocument();
27+
});
28+
});

0 commit comments

Comments
 (0)