1+ import path from 'path' ;
2+ import { render } from '@asyncapi/generator-react-sdk' ;
3+ import { Parser , fromFile } from '@asyncapi/parser' ;
4+ import { getQueryParams } from '@asyncapi/generator-helpers' ;
5+ import { Constructor } from '../../components/Constructor' ;
6+
7+ const parser = new Parser ( ) ;
8+ const asyncapiFilePath = path . resolve ( __dirname , '../../../../test/__fixtures__/asyncapi-websocket-components.yml' ) ;
9+
10+ describe ( 'Constructor component (integration with AsyncAPI document)' , ( ) => {
11+ let parsedAsyncAPIDocument ;
12+ let channels ;
13+ let queryParams ;
14+
15+ beforeAll ( async ( ) => {
16+ const parseResult = await fromFile ( parser , asyncapiFilePath ) . parse ( ) ;
17+ parsedAsyncAPIDocument = parseResult . document ;
18+ channels = parsedAsyncAPIDocument . channels ( ) ;
19+ queryParams = getQueryParams ( channels ) ;
20+ } ) ;
21+
22+ test ( 'renders nothing when query is null' , ( ) => {
23+ const result = render ( < Constructor clientName = "WebSocketClient" query = { null } /> ) ;
24+ expect ( result . trim ( ) ) . toMatchSnapshot ( ) ;
25+ } ) ;
26+
27+ test ( 'renders nothing when query has no entries' , ( ) => {
28+ const emptyQuery = new Map ( ) ;
29+ const result = render ( < Constructor clientName = "WebSocketClient" query = { emptyQuery } /> ) ;
30+ expect ( result . trim ( ) ) . toMatchSnapshot ( ) ;
31+ } ) ;
32+
33+ test ( 'renders constructor when query parameters are present' , ( ) => {
34+ const result = render ( < Constructor clientName = "WebSocketClient" query = { queryParams } /> ) ;
35+ expect ( result . trim ( ) ) . toMatchSnapshot ( ) ;
36+ } ) ;
37+ } ) ;
0 commit comments