@@ -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} ) ;
0 commit comments