Skip to content

Commit ff3245a

Browse files
committed
use test.each for error case tests
1 parent 7865a19 commit ff3245a

File tree

2 files changed

+22
-108
lines changed

2 files changed

+22
-108
lines changed

packages/components/test/components/Readme.test.js

Lines changed: 21 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,23 @@ describe('Testing of Readme component', () => {
1111
let parsedAsyncAPIDocument;
1212
let params;
1313

14-
const languages = ['javascript', 'python'];
14+
const languageConfigs = [
15+
{ language: 'javascript', clientFileName: 'myClient.js' },
16+
{ language: 'python', clientFileName: 'myClient.py' },
17+
];
1518

1619
beforeAll(async () => {
1720
const parseResult = await fromFile(parser, asyncapi_websocket_query).parse();
1821
parsedAsyncAPIDocument = parseResult.document;
19-
20-
params = buildParams(
21-
'javascript',
22-
{ clientFileName: 'myClient.js' },
23-
'production'
24-
);
2522
});
2623

27-
languages.forEach((language) => {
24+
languageConfigs.forEach(({ language, clientFileName }) => {
2825
test(`render Readme with language = ${language}`, () => {
26+
const params = buildParams(
27+
language,
28+
{ clientFileName },
29+
'production'
30+
);
2931
const result = render(
3032
<Readme
3133
asyncapi={parsedAsyncAPIDocument}
@@ -39,104 +41,16 @@ describe('Testing of Readme component', () => {
3941
});
4042
});
4143

42-
test('render Readme component when asyncapi is missing', () => {
43-
const renderReadme = () =>
44-
render(
45-
<Readme
46-
params={params}
47-
language="javascript"
48-
/>
49-
);
50-
51-
expect(renderReadme).toThrow(TypeError);
52-
});
53-
54-
test('render Readme component when params are missing', () => {
55-
const renderReadme = () =>
56-
render(
57-
<Readme
58-
asyncapi={parsedAsyncAPIDocument}
59-
language="javascript"
60-
/>
61-
);
62-
63-
expect(renderReadme).toThrow(TypeError);
64-
});
65-
66-
test('render Readme component when language is missing', () => {
67-
const renderReadme = () =>
68-
render(
69-
<Readme
70-
asyncapi={parsedAsyncAPIDocument}
71-
params={params}
72-
/>
73-
);
74-
75-
expect(renderReadme).toThrow(TypeError);
76-
});
77-
78-
test('render Readme with unsupported language', () => {
79-
const renderReadme = () =>
80-
render(
81-
<Readme
82-
asyncapi={parsedAsyncAPIDocument}
83-
params={params}
84-
language='dart'
85-
/>
86-
);
87-
88-
expect(renderReadme).toThrow(TypeError);
89-
});
90-
91-
test('render Readme when asyncapi is explicitly null', () => {
92-
const renderReadme = () =>
93-
render(
94-
<Readme
95-
asyncapi={null}
96-
params={params}
97-
language="javascript"
98-
/>
99-
);
100-
101-
expect(renderReadme).toThrow(TypeError);
102-
});
103-
104-
test('render Readme when params is explicitly null', () => {
105-
const renderReadme = () =>
106-
render(
107-
<Readme
108-
asyncapi={parsedAsyncAPIDocument}
109-
params={null}
110-
language="javascript"
111-
/>
112-
);
113-
114-
expect(renderReadme).toThrow(TypeError);
115-
});
116-
117-
test('render Readme when language is explicitly null', () => {
118-
const renderReadme = () =>
119-
render(
120-
<Readme
121-
asyncapi={parsedAsyncAPIDocument}
122-
params={params}
123-
language={null}
124-
/>
125-
);
126-
127-
expect(renderReadme).toThrow(TypeError);
128-
});
129-
130-
test('render Readme with empty string language', () => {
131-
const renderReadme = () =>
132-
render(
133-
<Readme
134-
asyncapi={parsedAsyncAPIDocument}
135-
params={params}
136-
language={''}
137-
/>
138-
);
139-
140-
expect(renderReadme).toThrow(TypeError);
44+
test.each([
45+
['asyncapi is missing', { params, language: 'javascript' }],
46+
['params are missing', { asyncapi: parsedAsyncAPIDocument, language: 'javascript' }],
47+
['language is missing', { asyncapi: parsedAsyncAPIDocument, params }],
48+
['asyncapi is null', { asyncapi: null, params, language: 'javascript' }],
49+
['params is null', { asyncapi: parsedAsyncAPIDocument, params: null, language: 'javascript' }],
50+
['language is null', { asyncapi: parsedAsyncAPIDocument, params, language: null }],
51+
['language is empty', { asyncapi: parsedAsyncAPIDocument, params, language: '' }],
52+
['language is unsupported',{ asyncapi: parsedAsyncAPIDocument, params, language: 'dart' }],
53+
])('throws TypeError when %s', (_label, props) => {
54+
expect(() => render(<Readme {...props} />)).toThrow(TypeError);
14155
});
14256
});

packages/components/test/components/__snapshots__/Readme.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ pip install -r requirements.txt
8383
## Usage
8484
8585
\`\`\`python
86-
from myClient.js import AccountService
86+
from myClient import AccountService
8787
8888
ws_client = AccountService()
8989

0 commit comments

Comments
 (0)