Skip to content

Commit 07d9142

Browse files
committed
test: add test case.
1 parent 8285bb9 commit 07d9142

File tree

5 files changed

+173
-1
lines changed

5 files changed

+173
-1
lines changed

core/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ The new version [**v2**](https://raw.githack.com/uiwjs/react-json-view/v2-docs/i
3030

3131
- [x] Complete all features of displaying JSON in v1.
3232
- [ ] Add editing functionality to v2.
33-
- [ ] Add test cases to v2.
33+
- [x] Add test cases to v2.
3434

3535
## Quick Start
3636

core/src/symbol/BraceRight.test.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { screen, render, waitFor } from '@testing-library/react';
2+
import JsonView from '..';
3+
4+
it('renders <JsonView.BraceRight /> test case', async () => {
5+
const demo = {
6+
value: '123',
7+
};
8+
const { container } = render(
9+
<JsonView value={demo}>
10+
<JsonView.BraceRight data-testid="brace">x</JsonView.BraceRight>
11+
</JsonView>,
12+
);
13+
expect(container.firstElementChild).toBeInstanceOf(Element);
14+
await waitFor(() => {
15+
const arrow = screen.getByTestId('brace');
16+
expect(arrow.tagName).toBe('SPAN');
17+
expect(arrow.innerHTML).toBe('x');
18+
});
19+
});
20+
21+
it('renders <JsonView.BraceRight render /> test case', async () => {
22+
const demo = {
23+
value: '123',
24+
};
25+
const { container } = render(
26+
<JsonView value={demo}>
27+
<JsonView.BraceRight
28+
data-testid="brace"
29+
render={(props) => {
30+
expect(props.style).toHaveProperty('color', 'var(--w-rjv-curlybraces-color, #236a7c)');
31+
return <span {...props}>.......</span>;
32+
}}
33+
/>
34+
</JsonView>,
35+
);
36+
expect(container.firstElementChild).toBeInstanceOf(Element);
37+
await waitFor(() => {
38+
const arrow = screen.getByTestId('brace');
39+
expect(arrow.tagName).toBe('SPAN');
40+
expect(arrow.className).toBe('w-rjv-curlybraces-end');
41+
expect(arrow.innerHTML).toBe('.......');
42+
});
43+
});

core/src/symbol/BracketsLeft.test.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { screen, render, waitFor } from '@testing-library/react';
2+
import JsonView from '..';
3+
4+
it('renders <JsonView.BracketsLeft /> test case', async () => {
5+
const demo = {
6+
value: ['123'],
7+
};
8+
const { container } = render(
9+
<JsonView value={demo}>
10+
<JsonView.BracketsLeft data-testid="brace">x</JsonView.BracketsLeft>
11+
</JsonView>,
12+
);
13+
expect(container.firstElementChild).toBeInstanceOf(Element);
14+
await waitFor(() => {
15+
const arrow = screen.getByTestId('brace');
16+
expect(arrow.tagName).toBe('SPAN');
17+
expect(arrow.innerHTML).toBe('x');
18+
});
19+
});
20+
21+
it('renders <JsonView.BracketsLeft render /> test case', async () => {
22+
const demo = {
23+
value: ['123'],
24+
};
25+
const { container } = render(
26+
<JsonView value={demo}>
27+
<JsonView.BracketsLeft
28+
data-testid="brace"
29+
render={(props) => {
30+
expect(props.style).toHaveProperty('color', 'var(--w-rjv-brackets-color, #236a7c)');
31+
return <span {...props}>.......</span>;
32+
}}
33+
/>
34+
</JsonView>,
35+
);
36+
expect(container.firstElementChild).toBeInstanceOf(Element);
37+
await waitFor(() => {
38+
const arrow = screen.getByTestId('brace');
39+
expect(arrow.tagName).toBe('SPAN');
40+
expect(arrow.className).toBe('w-rjv-brackets-start');
41+
expect(arrow.innerHTML).toBe('.......');
42+
});
43+
});
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { screen, render, waitFor } from '@testing-library/react';
2+
import JsonView from '..';
3+
4+
it('renders <JsonView.BracketsRight /> test case', async () => {
5+
const demo = {
6+
value: ['123'],
7+
};
8+
const { container } = render(
9+
<JsonView value={demo}>
10+
<JsonView.BracketsRight data-testid="brace">x</JsonView.BracketsRight>
11+
</JsonView>,
12+
);
13+
expect(container.firstElementChild).toBeInstanceOf(Element);
14+
await waitFor(() => {
15+
const arrow = screen.getByTestId('brace');
16+
expect(arrow.tagName).toBe('SPAN');
17+
expect(arrow.innerHTML).toBe('x');
18+
});
19+
});
20+
21+
it('renders <JsonView.BracketsRight render /> test case', async () => {
22+
const demo = {
23+
value: ['123'],
24+
};
25+
const { container } = render(
26+
<JsonView value={demo}>
27+
<JsonView.BracketsRight
28+
data-testid="brace"
29+
render={(props) => {
30+
expect(props.style).toHaveProperty('color', 'var(--w-rjv-brackets-color, #236a7c)');
31+
return <span {...props}>.......</span>;
32+
}}
33+
/>
34+
</JsonView>,
35+
);
36+
expect(container.firstElementChild).toBeInstanceOf(Element);
37+
await waitFor(() => {
38+
const arrow = screen.getByTestId('brace');
39+
expect(arrow.tagName).toBe('SPAN');
40+
expect(arrow.className).toBe('w-rjv-brackets-end');
41+
expect(arrow.innerHTML).toBe('.......');
42+
});
43+
});

core/src/symbol/Colon.test.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { screen, render, waitFor } from '@testing-library/react';
2+
import JsonView from '..';
3+
4+
it('renders <JsonView.Colon /> test case', async () => {
5+
const demo = {
6+
value: 123,
7+
};
8+
const { container } = render(
9+
<JsonView value={demo}>
10+
<JsonView.Colon data-testid="brace">x</JsonView.Colon>
11+
</JsonView>,
12+
);
13+
expect(container.firstElementChild).toBeInstanceOf(Element);
14+
await waitFor(() => {
15+
const elm = screen.getByTestId('brace');
16+
expect(elm.tagName).toBe('SPAN');
17+
expect(elm.innerHTML).toBe('x');
18+
});
19+
});
20+
21+
it('renders <JsonView.Colon render /> test case', async () => {
22+
const demo = {
23+
value: 123,
24+
};
25+
const { container } = render(
26+
<JsonView value={demo}>
27+
<JsonView.Colon
28+
data-testid="colon"
29+
render={(props) => {
30+
expect(props.style).toHaveProperty('color', 'var(--w-rjv-colon-color, var(--w-rjv-color))');
31+
return <span {...props}>.......</span>;
32+
}}
33+
/>
34+
</JsonView>,
35+
);
36+
expect(container.firstElementChild).toBeInstanceOf(Element);
37+
await waitFor(() => {
38+
const elm = screen.getByTestId('colon');
39+
expect(elm.tagName).toBe('SPAN');
40+
expect(elm.className).toBe('w-rjv-colon');
41+
expect(elm.innerHTML).toBe('.......');
42+
});
43+
});

0 commit comments

Comments
 (0)