11import { LwcMetadata } from '../../../reflection/lwc/reflect-lwc-source' ;
22import { lwcMetadataToRenderable } from '../type-to-renderable' ;
3+ import { MarkdownGeneratorConfig } from '../../generate-docs' ;
34
45describe ( 'LWC Adapter' , ( ) => {
6+ const defaultConfig : MarkdownGeneratorConfig = {
7+ targetDir : '' ,
8+ scope : [ 'global' , 'public' ] ,
9+ customObjectVisibility : [ 'public' ] ,
10+ namespace : '' ,
11+ defaultGroupName : 'Miscellaneous' ,
12+ customObjectsGroupName : 'Custom Objects' ,
13+ triggersGroupName : 'Triggers' ,
14+ referenceGuideTemplate : '' ,
15+ sortAlphabetically : false ,
16+ linkingStrategy : 'relative' ,
17+ referenceGuideTitle : 'Apex Reference Guide' ,
18+ includeFieldSecurityMetadata : true ,
19+ includeInlineHelpTextMetadata : true ,
20+ exclude : [ ] ,
21+ excludeTags : [ ] ,
22+ } ;
23+
524 describe ( 'lwcMetadataToRenderable' , ( ) => {
625 it ( 'converts LWC metadata to renderable with correct type' , ( ) => {
726 const lwcMetadata : LwcMetadata = {
@@ -12,7 +31,7 @@ describe('LWC Adapter', () => {
1231 masterLabel : 'Test Component' ,
1332 } ;
1433
15- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
34+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
1635
1736 expect ( renderable . type ) . toBe ( 'lwc' ) ;
1837 } ) ;
@@ -26,7 +45,7 @@ describe('LWC Adapter', () => {
2645 masterLabel : 'Test Component' ,
2746 } ;
2847
29- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
48+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
3049
3150 expect ( renderable . headingLevel ) . toBe ( 1 ) ;
3251 } ) ;
@@ -40,7 +59,7 @@ describe('LWC Adapter', () => {
4059 masterLabel : 'My Awesome Component' ,
4160 } ;
4261
43- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
62+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
4463
4564 expect ( renderable . heading ) . toBe ( 'MyAwesomeComponent' ) ;
4665 } ) ;
@@ -54,7 +73,7 @@ describe('LWC Adapter', () => {
5473 masterLabel : 'Data Table Component' ,
5574 } ;
5675
57- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
76+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
5877
5978 expect ( renderable . name ) . toBe ( 'DataTableComponent' ) ;
6079 } ) ;
@@ -68,7 +87,7 @@ describe('LWC Adapter', () => {
6887 masterLabel : 'Test Component' ,
6988 } ;
7089
71- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
90+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
7291
7392 expect ( renderable . doc . description ) . toBeUndefined ( ) ;
7493 } ) ;
@@ -82,9 +101,9 @@ describe('LWC Adapter', () => {
82101 masterLabel : 'Test Component' ,
83102 } ;
84103
85- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
104+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
86105
87- expect ( renderable . doc . description ) . toEqual ( [ 'A comprehensive test component' ] ) ;
106+ expect ( renderable . description ) . toEqual ( 'A comprehensive test component' ) ;
88107 } ) ;
89108
90109 it ( 'works with components that have special characters in names' , ( ) => {
@@ -96,7 +115,7 @@ describe('LWC Adapter', () => {
96115 masterLabel : 'Custom Component V2' ,
97116 } ;
98117
99- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
118+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
100119
101120 expect ( renderable . name ) . toBe ( 'custom_component_v2' ) ;
102121 expect ( renderable . heading ) . toBe ( 'custom_component_v2' ) ;
@@ -111,7 +130,7 @@ describe('LWC Adapter', () => {
111130 masterLabel : 'My Custom Data Component' ,
112131 } ;
113132
114- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
133+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
115134
116135 expect ( renderable . name ) . toBe ( 'myCustomDataComponent' ) ;
117136 expect ( renderable . heading ) . toBe ( 'myCustomDataComponent' ) ;
@@ -126,7 +145,7 @@ describe('LWC Adapter', () => {
126145 masterLabel : 'My Custom Data Component' ,
127146 } ;
128147
129- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
148+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
130149
131150 expect ( renderable . name ) . toBe ( 'MyCustomDataComponent' ) ;
132151 expect ( renderable . heading ) . toBe ( 'MyCustomDataComponent' ) ;
@@ -141,18 +160,18 @@ describe('LWC Adapter', () => {
141160 masterLabel : 'Another Component' ,
142161 } ;
143162
144- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
163+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
145164
146165 // Verify the renderable has the expected structure
147166 expect ( renderable ) . toHaveProperty ( 'type' , 'lwc' ) ;
148167 expect ( renderable ) . toHaveProperty ( 'headingLevel' , 1 ) ;
149168 expect ( renderable ) . toHaveProperty ( 'heading' ) ;
150169 expect ( renderable ) . toHaveProperty ( 'name' ) ;
151170 expect ( renderable ) . toHaveProperty ( 'doc' ) ;
152- expect ( renderable . doc ) . toHaveProperty ( 'description' ) ;
171+ expect ( renderable ) . toHaveProperty ( 'description' ) ;
153172 } ) ;
154173
155- it ( 'includes isExposed information in custom tags when component is exposed' , ( ) => {
174+ it ( 'includes isExposed information when component is exposed' , ( ) => {
156175 const lwcMetadata : LwcMetadata = {
157176 description : 'Test component description' ,
158177 type_name : 'lwc' ,
@@ -161,11 +180,9 @@ describe('LWC Adapter', () => {
161180 masterLabel : 'Test Component' ,
162181 } ;
163182
164- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
183+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
165184
166- expect ( renderable . doc . customTags ) . toBeDefined ( ) ;
167- expect ( renderable . doc . customTags ! [ 0 ] . name ) . toBe ( 'exposed' ) ;
168- expect ( renderable . doc . customTags ! [ 0 ] . description ) . toContain ( '`Exposed`' ) ;
185+ expect ( renderable . exposed ) . toBe ( true ) ;
169186 } ) ;
170187
171188 it ( 'does not include isExposed information when component is not exposed' , ( ) => {
@@ -177,12 +194,12 @@ describe('LWC Adapter', () => {
177194 masterLabel : 'Test Component' ,
178195 } ;
179196
180- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
197+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
181198
182- expect ( renderable . doc . customTags ) . toBeUndefined ( ) ;
199+ expect ( renderable . exposed ) . toBe ( false ) ;
183200 } ) ;
184201
185- it ( 'includes master label information in custom tags ' , ( ) => {
202+ it ( 'includes master label information' , ( ) => {
186203 const lwcMetadata : LwcMetadata = {
187204 description : 'Test component description' ,
188205 type_name : 'lwc' ,
@@ -191,14 +208,12 @@ describe('LWC Adapter', () => {
191208 masterLabel : 'Test Component Label' ,
192209 } ;
193210
194- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
211+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
195212
196- expect ( renderable . doc . customTags ) . toBeDefined ( ) ;
197- expect ( renderable . doc . customTags ! [ 0 ] . name ) . toBe ( 'exposed' ) ;
198- expect ( renderable . doc . customTags ! [ 0 ] . description ) . toContain ( '`Exposed`' ) ;
213+ expect ( renderable . exposed ) . toBe ( true ) ;
199214 } ) ;
200215
201- it ( 'includes targets information in custom tags when available' , ( ) => {
216+ it ( 'includes targets information when available' , ( ) => {
202217 const lwcMetadata : LwcMetadata = {
203218 description : 'Test component description' ,
204219 type_name : 'lwc' ,
@@ -210,19 +225,14 @@ describe('LWC Adapter', () => {
210225 } ,
211226 } ;
212227
213- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
228+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
214229
215- expect ( renderable . doc . customTags ) . toBeDefined ( ) ;
216- expect ( renderable . doc . customTags ! [ 0 ] . name ) . toBe ( 'exposed' ) ;
217- expect ( renderable . doc . customTags ! [ 0 ] . description ) . toContain ( '`Exposed`' ) ;
218- expect ( renderable . doc . customTags ! [ 1 ] . name ) . toBe ( 'targets' ) ;
219- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toEqual ( [
220- '- lightningCommunity__Default' ,
221- '- lightning__AppPage' ,
222- ] ) ;
230+ expect ( renderable . targets . value ) . toEqual ( [ 'lightningCommunity__Default' , 'lightning__AppPage' ] ) ;
231+ expect ( renderable . targets . heading ) . toBe ( 'Targets' ) ;
232+ expect ( renderable . targets . headingLevel ) . toBe ( 2 ) ;
223233 } ) ;
224234
225- it ( 'includes target configs information in custom tags when available' , ( ) => {
235+ it ( 'includes target configs information when available' , ( ) => {
226236 const lwcMetadata : LwcMetadata = {
227237 description : 'Test component description' ,
228238 type_name : 'lwc' ,
@@ -247,18 +257,17 @@ describe('LWC Adapter', () => {
247257 } ,
248258 } ;
249259
250- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
251-
252- expect ( renderable . doc . customTags ) . toBeDefined ( ) ;
253- expect ( renderable . doc . customTags ! [ 0 ] . name ) . toBe ( 'exposed' ) ;
254- expect ( renderable . doc . customTags ! [ 0 ] . description ) . toContain ( '`Exposed`' ) ;
255- expect ( renderable . doc . customTags ! [ 1 ] . name ) . toBe ( 'targetConfig' ) ;
256- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toContain ( '### lightningCommunity__Default' ) ;
257- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toContain ( '#### Properties' ) ;
258- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toContain ( '**recordId**' ) ;
259- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toContain ( '- Type: String' ) ;
260- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toContain ( '- Required: true' ) ;
261- expect ( renderable . doc . customTags ! [ 1 ] . description ) . toContain ( '- Description: The ID of the record to display' ) ;
260+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
261+
262+ expect ( renderable . targetConfigs . value ) . toHaveLength ( 1 ) ;
263+ expect ( renderable . targetConfigs . value [ 0 ] . targetName ) . toBe ( 'lightningCommunity__Default' ) ;
264+ expect ( renderable . targetConfigs . value [ 0 ] . properties ) . toHaveLength ( 1 ) ;
265+ expect ( renderable . targetConfigs . value [ 0 ] . properties [ 0 ] . name ) . toBe ( 'recordId' ) ;
266+ expect ( renderable . targetConfigs . value [ 0 ] . properties [ 0 ] . type ) . toBe ( 'String' ) ;
267+ expect ( renderable . targetConfigs . value [ 0 ] . properties [ 0 ] . required ) . toBe ( true ) ;
268+ expect ( renderable . targetConfigs . value [ 0 ] . properties [ 0 ] . description ) . toBe ( 'The ID of the record to display' ) ;
269+ expect ( renderable . targetConfigs . heading ) . toBe ( 'Target Configs' ) ;
270+ expect ( renderable . targetConfigs . headingLevel ) . toBe ( 2 ) ;
262271 } ) ;
263272
264273 it ( 'handles components with no additional metadata gracefully' , ( ) => {
@@ -270,7 +279,7 @@ describe('LWC Adapter', () => {
270279 masterLabel : 'Test Component' ,
271280 } ;
272281
273- const renderable = lwcMetadataToRenderable ( lwcMetadata ) ;
282+ const renderable = lwcMetadataToRenderable ( lwcMetadata , defaultConfig ) ;
274283
275284 expect ( renderable . doc . description ) . toBeUndefined ( ) ;
276285 } ) ;
0 commit comments