lwc-convert 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +719 -0
  3. package/dist/cli/commands/aura.d.ts +6 -0
  4. package/dist/cli/commands/aura.d.ts.map +1 -0
  5. package/dist/cli/commands/aura.js +225 -0
  6. package/dist/cli/commands/aura.js.map +1 -0
  7. package/dist/cli/commands/vf.d.ts +6 -0
  8. package/dist/cli/commands/vf.d.ts.map +1 -0
  9. package/dist/cli/commands/vf.js +218 -0
  10. package/dist/cli/commands/vf.js.map +1 -0
  11. package/dist/cli/interactive.d.ts +20 -0
  12. package/dist/cli/interactive.d.ts.map +1 -0
  13. package/dist/cli/interactive.js +577 -0
  14. package/dist/cli/interactive.js.map +1 -0
  15. package/dist/cli/options.d.ts +21 -0
  16. package/dist/cli/options.d.ts.map +1 -0
  17. package/dist/cli/options.js +24 -0
  18. package/dist/cli/options.js.map +1 -0
  19. package/dist/generators/full-conversion.d.ts +41 -0
  20. package/dist/generators/full-conversion.d.ts.map +1 -0
  21. package/dist/generators/full-conversion.js +538 -0
  22. package/dist/generators/full-conversion.js.map +1 -0
  23. package/dist/generators/scaffolding.d.ts +40 -0
  24. package/dist/generators/scaffolding.d.ts.map +1 -0
  25. package/dist/generators/scaffolding.js +716 -0
  26. package/dist/generators/scaffolding.js.map +1 -0
  27. package/dist/generators/test-comparison.d.ts +47 -0
  28. package/dist/generators/test-comparison.d.ts.map +1 -0
  29. package/dist/generators/test-comparison.js +855 -0
  30. package/dist/generators/test-comparison.js.map +1 -0
  31. package/dist/generators/test-generator.d.ts +27 -0
  32. package/dist/generators/test-generator.d.ts.map +1 -0
  33. package/dist/generators/test-generator.js +385 -0
  34. package/dist/generators/test-generator.js.map +1 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +226 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/mappings/aura-to-lwc.json +321 -0
  40. package/dist/mappings/vf-to-lwc.json +354 -0
  41. package/dist/parsers/aura/controller-parser.d.ts +36 -0
  42. package/dist/parsers/aura/controller-parser.d.ts.map +1 -0
  43. package/dist/parsers/aura/controller-parser.js +269 -0
  44. package/dist/parsers/aura/controller-parser.js.map +1 -0
  45. package/dist/parsers/aura/helper-parser.d.ts +21 -0
  46. package/dist/parsers/aura/helper-parser.d.ts.map +1 -0
  47. package/dist/parsers/aura/helper-parser.js +173 -0
  48. package/dist/parsers/aura/helper-parser.js.map +1 -0
  49. package/dist/parsers/aura/markup-parser.d.ts +59 -0
  50. package/dist/parsers/aura/markup-parser.d.ts.map +1 -0
  51. package/dist/parsers/aura/markup-parser.js +279 -0
  52. package/dist/parsers/aura/markup-parser.js.map +1 -0
  53. package/dist/parsers/aura/style-parser.d.ts +37 -0
  54. package/dist/parsers/aura/style-parser.d.ts.map +1 -0
  55. package/dist/parsers/aura/style-parser.js +151 -0
  56. package/dist/parsers/aura/style-parser.js.map +1 -0
  57. package/dist/parsers/vf/apex-parser.d.ts +51 -0
  58. package/dist/parsers/vf/apex-parser.d.ts.map +1 -0
  59. package/dist/parsers/vf/apex-parser.js +251 -0
  60. package/dist/parsers/vf/apex-parser.js.map +1 -0
  61. package/dist/parsers/vf/page-parser.d.ts +61 -0
  62. package/dist/parsers/vf/page-parser.d.ts.map +1 -0
  63. package/dist/parsers/vf/page-parser.js +403 -0
  64. package/dist/parsers/vf/page-parser.js.map +1 -0
  65. package/dist/transformers/aura-to-lwc/controller.d.ts +36 -0
  66. package/dist/transformers/aura-to-lwc/controller.d.ts.map +1 -0
  67. package/dist/transformers/aura-to-lwc/controller.js +372 -0
  68. package/dist/transformers/aura-to-lwc/controller.js.map +1 -0
  69. package/dist/transformers/aura-to-lwc/events.d.ts +47 -0
  70. package/dist/transformers/aura-to-lwc/events.d.ts.map +1 -0
  71. package/dist/transformers/aura-to-lwc/events.js +262 -0
  72. package/dist/transformers/aura-to-lwc/events.js.map +1 -0
  73. package/dist/transformers/aura-to-lwc/markup.d.ts +51 -0
  74. package/dist/transformers/aura-to-lwc/markup.d.ts.map +1 -0
  75. package/dist/transformers/aura-to-lwc/markup.js +465 -0
  76. package/dist/transformers/aura-to-lwc/markup.js.map +1 -0
  77. package/dist/transformers/vf-to-lwc/components.d.ts +40 -0
  78. package/dist/transformers/vf-to-lwc/components.d.ts.map +1 -0
  79. package/dist/transformers/vf-to-lwc/components.js +374 -0
  80. package/dist/transformers/vf-to-lwc/components.js.map +1 -0
  81. package/dist/transformers/vf-to-lwc/data-binding.d.ts +53 -0
  82. package/dist/transformers/vf-to-lwc/data-binding.d.ts.map +1 -0
  83. package/dist/transformers/vf-to-lwc/data-binding.js +660 -0
  84. package/dist/transformers/vf-to-lwc/data-binding.js.map +1 -0
  85. package/dist/transformers/vf-to-lwc/markup.d.ts +44 -0
  86. package/dist/transformers/vf-to-lwc/markup.d.ts.map +1 -0
  87. package/dist/transformers/vf-to-lwc/markup.js +816 -0
  88. package/dist/transformers/vf-to-lwc/markup.js.map +1 -0
  89. package/dist/utils/confidence-scorer.d.ts +100 -0
  90. package/dist/utils/confidence-scorer.d.ts.map +1 -0
  91. package/dist/utils/confidence-scorer.js +358 -0
  92. package/dist/utils/confidence-scorer.js.map +1 -0
  93. package/dist/utils/file-io.d.ts +62 -0
  94. package/dist/utils/file-io.d.ts.map +1 -0
  95. package/dist/utils/file-io.js +248 -0
  96. package/dist/utils/file-io.js.map +1 -0
  97. package/dist/utils/logger.d.ts +34 -0
  98. package/dist/utils/logger.d.ts.map +1 -0
  99. package/dist/utils/logger.js +130 -0
  100. package/dist/utils/logger.js.map +1 -0
  101. package/dist/utils/open-folder.d.ts +9 -0
  102. package/dist/utils/open-folder.d.ts.map +1 -0
  103. package/dist/utils/open-folder.js +76 -0
  104. package/dist/utils/open-folder.js.map +1 -0
  105. package/dist/utils/path-resolver.d.ts +29 -0
  106. package/dist/utils/path-resolver.d.ts.map +1 -0
  107. package/dist/utils/path-resolver.js +240 -0
  108. package/dist/utils/path-resolver.js.map +1 -0
  109. package/dist/utils/session-store.d.ts +158 -0
  110. package/dist/utils/session-store.d.ts.map +1 -0
  111. package/dist/utils/session-store.js +518 -0
  112. package/dist/utils/session-store.js.map +1 -0
  113. package/dist/utils/vf-controller-resolver.d.ts +36 -0
  114. package/dist/utils/vf-controller-resolver.d.ts.map +1 -0
  115. package/dist/utils/vf-controller-resolver.js +162 -0
  116. package/dist/utils/vf-controller-resolver.js.map +1 -0
  117. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-comparison.js","sourceRoot":"","sources":["../../src/generators/test-comparison.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Generate Jest test scaffolding for converted LWC components
3
+ * Creates tests that verify the conversion preserves expected behaviors
4
+ */
5
+ import { ParsedAuraMarkup } from '../parsers/aura/markup-parser';
6
+ import { ParsedAuraController } from '../parsers/aura/controller-parser';
7
+ import { TransformedMarkup } from '../transformers/aura-to-lwc/markup';
8
+ export interface GeneratedTest {
9
+ filename: string;
10
+ content: string;
11
+ behaviorSpecs: BehaviorSpec[];
12
+ }
13
+ export interface BehaviorSpec {
14
+ category: 'lms' | 'data' | 'lifecycle' | 'event' | 'ui';
15
+ description: string;
16
+ auraPattern: string;
17
+ lwcEquivalent: string;
18
+ }
19
+ /**
20
+ * Generate Jest tests for a converted Aura component
21
+ */
22
+ export declare function generateAuraToLwcTests(markup: ParsedAuraMarkup, transformedMarkup: TransformedMarkup, controller?: ParsedAuraController): GeneratedTest;
23
+ /**
24
+ * Generate a behavior specification document that maps Aura behaviors to LWC equivalents
25
+ */
26
+ export declare function generateBehaviorSpecDocument(componentName: string, specs: BehaviorSpec[]): string;
27
+ //# sourceMappingURL=test-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/generators/test-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,CAAC,EAAE,oBAAoB,GAChC,aAAa,CAgXf;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,YAAY,EAAE,GACpB,MAAM,CAkCR"}
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ /**
3
+ * Generate Jest test scaffolding for converted LWC components
4
+ * Creates tests that verify the conversion preserves expected behaviors
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateAuraToLwcTests = generateAuraToLwcTests;
8
+ exports.generateBehaviorSpecDocument = generateBehaviorSpecDocument;
9
+ const file_io_1 = require("../utils/file-io");
10
+ /**
11
+ * Generate Jest tests for a converted Aura component
12
+ */
13
+ function generateAuraToLwcTests(markup, transformedMarkup, controller) {
14
+ const lwcName = (0, file_io_1.toLwcName)(markup.componentName);
15
+ const className = (0, file_io_1.toPascalCase)(markup.componentName);
16
+ const behaviorSpecs = [];
17
+ const imports = [];
18
+ const mocks = [];
19
+ // Always need createElement
20
+ imports.push("import { createElement } from 'lwc';");
21
+ imports.push(`import ${className} from 'c/${lwcName}';`);
22
+ // Analyze LMS patterns
23
+ const hasLmsSubscriber = transformedMarkup.lmsChannels.some(lms => !lms.isPublisherOnly);
24
+ const hasLmsPublisher = transformedMarkup.lmsChannels.some(lms => lms.isPublisherOnly);
25
+ if (transformedMarkup.lmsChannels.length > 0) {
26
+ imports.push("import { publish, subscribe, unsubscribe, MessageContext } from 'lightning/messageService';");
27
+ for (const lms of transformedMarkup.lmsChannels) {
28
+ const channelVar = lms.channelName.replace(/__c$/i, '').toUpperCase() + '_CHANNEL';
29
+ imports.push(`import ${channelVar} from '@salesforce/messageChannel/${lms.channelName}';`);
30
+ }
31
+ // Add LMS mocks
32
+ mocks.push(`// Mock LMS
33
+ jest.mock(
34
+ 'lightning/messageService',
35
+ () => ({
36
+ publish: jest.fn(),
37
+ subscribe: jest.fn(() => ({ unsubscribe: jest.fn() })),
38
+ unsubscribe: jest.fn(),
39
+ MessageContext: jest.fn()
40
+ }),
41
+ { virtual: true }
42
+ );`);
43
+ }
44
+ // Analyze wire/data patterns
45
+ if (transformedMarkup.recordDataServices.length > 0) {
46
+ imports.push("import { getRecord, getFieldValue } from 'lightning/uiRecordApi';");
47
+ // Mock wire adapter
48
+ mocks.push(`// Mock getRecord wire adapter
49
+ const mockGetRecord = require('lightning/uiRecordApi').getRecord;`);
50
+ for (const rds of transformedMarkup.recordDataServices) {
51
+ behaviorSpecs.push({
52
+ category: 'data',
53
+ description: `Load record data when ${rds.recordIdBinding} changes`,
54
+ auraPattern: `force:recordData recordId="{!v.${rds.recordIdBinding}}" targetFields="{!v.${rds.targetFields}}"`,
55
+ lwcEquivalent: `@wire(getRecord, { recordId: '$${rds.recordIdBinding}', fields: [...] })`
56
+ });
57
+ }
58
+ }
59
+ // Check for Apex calls in init
60
+ const initHandler = markup.handlers.find(h => h.name === 'init');
61
+ let initApexMethod = null;
62
+ if (initHandler && controller) {
63
+ const funcName = initHandler.action.replace('{!c.', '').replace('}', '');
64
+ const initFunc = controller.functions.find(f => f.name === funcName);
65
+ if (initFunc?.serverCalls.length) {
66
+ initApexMethod = initFunc.serverCalls[0].controllerMethod || null;
67
+ if (initApexMethod) {
68
+ imports.push(`import ${initApexMethod} from '@salesforce/apex/${markup.controller}.${initApexMethod}';`);
69
+ mocks.push(`// Mock Apex method
70
+ jest.mock(
71
+ '@salesforce/apex/${markup.controller}.${initApexMethod}',
72
+ () => ({ default: jest.fn() }),
73
+ { virtual: true }
74
+ );`);
75
+ behaviorSpecs.push({
76
+ category: 'data',
77
+ description: `Load data on init via ${initApexMethod}`,
78
+ auraPattern: `aura:handler name="init" -> component.get("c.${initApexMethod}")`,
79
+ lwcEquivalent: `@wire(${initApexMethod})`
80
+ });
81
+ }
82
+ }
83
+ }
84
+ // Generate test structure
85
+ let testContent = `/**
86
+ * Jest tests for ${lwcName}
87
+ * Converted from Aura component: ${markup.componentName}
88
+ *
89
+ * These tests verify that the converted LWC preserves the original behaviors.
90
+ */
91
+
92
+ ${imports.join('\n')}
93
+
94
+ ${mocks.join('\n\n')}
95
+
96
+ describe('${lwcName}', () => {
97
+ let element;
98
+
99
+ beforeEach(() => {
100
+ element = createElement('c-${lwcName}', {
101
+ is: ${className}
102
+ });
103
+ });
104
+
105
+ afterEach(() => {
106
+ while (document.body.firstChild) {
107
+ document.body.removeChild(document.body.firstChild);
108
+ }
109
+ jest.clearAllMocks();
110
+ });
111
+
112
+ `;
113
+ // Generate LMS Subscriber tests
114
+ if (hasLmsSubscriber) {
115
+ for (const lms of transformedMarkup.lmsChannels.filter(l => !l.isPublisherOnly)) {
116
+ const channelVar = lms.channelName.replace(/__c$/i, '').toUpperCase() + '_CHANNEL';
117
+ behaviorSpecs.push({
118
+ category: 'lms',
119
+ description: `Subscribe to ${lms.channelName} on connect`,
120
+ auraPattern: `lightning:messageChannel type="${lms.channelName}" onMessage="{!c.${lms.onMessageHandler}}"`,
121
+ lwcEquivalent: `subscribe(messageContext, ${channelVar}, handleMessage) in connectedCallback`
122
+ });
123
+ behaviorSpecs.push({
124
+ category: 'lms',
125
+ description: `Unsubscribe from ${lms.channelName} on disconnect`,
126
+ auraPattern: 'Automatic cleanup by Aura framework',
127
+ lwcEquivalent: `unsubscribe(subscription) in disconnectedCallback`
128
+ });
129
+ testContent += ` /**
130
+ * LMS Subscription Tests
131
+ * Original Aura: lightning:messageChannel type="${lms.channelName}" onMessage="{!c.${lms.onMessageHandler}}"
132
+ */
133
+ describe('LMS Subscription - ${lms.channelName}', () => {
134
+ test('should subscribe to message channel on connect', () => {
135
+ // Arrange & Act
136
+ document.body.appendChild(element);
137
+
138
+ // Assert
139
+ expect(subscribe).toHaveBeenCalledWith(
140
+ expect.anything(), // MessageContext
141
+ ${channelVar},
142
+ expect.any(Function)
143
+ );
144
+ });
145
+
146
+ test('should unsubscribe from message channel on disconnect', () => {
147
+ // Arrange
148
+ document.body.appendChild(element);
149
+
150
+ // Act
151
+ document.body.removeChild(element);
152
+
153
+ // Assert
154
+ expect(unsubscribe).toHaveBeenCalled();
155
+ });
156
+
157
+ test('should handle incoming message and update state', async () => {
158
+ // Arrange
159
+ document.body.appendChild(element);
160
+ const mockRecordId = '003xx000004TtgAAC';
161
+
162
+ // Get the message handler that was registered
163
+ const messageHandler = subscribe.mock.calls[0][2];
164
+
165
+ // Act - simulate receiving a message
166
+ messageHandler({ recordId: mockRecordId });
167
+
168
+ // Wait for reactivity
169
+ await Promise.resolve();
170
+
171
+ // Assert - verify state was updated
172
+ // The original Aura set v.contactId from message.getParam('recordId')
173
+ expect(element.contactId).toBe(mockRecordId);
174
+ });
175
+
176
+ test('should clear state when message has no recordId', async () => {
177
+ // Arrange
178
+ document.body.appendChild(element);
179
+ const messageHandler = subscribe.mock.calls[0][2];
180
+
181
+ // Act - simulate receiving empty message
182
+ messageHandler({});
183
+ await Promise.resolve();
184
+
185
+ // Assert
186
+ expect(element.contactId).toBe('');
187
+ });
188
+ });
189
+
190
+ `;
191
+ }
192
+ }
193
+ // Generate LMS Publisher tests
194
+ if (hasLmsPublisher) {
195
+ for (const lms of transformedMarkup.lmsChannels.filter(l => l.isPublisherOnly)) {
196
+ const channelVar = lms.channelName.replace(/__c$/i, '').toUpperCase() + '_CHANNEL';
197
+ behaviorSpecs.push({
198
+ category: 'lms',
199
+ description: `Publish to ${lms.channelName} when contact selected`,
200
+ auraPattern: `component.find('recordSelected').publish(payload)`,
201
+ lwcEquivalent: `publish(messageContext, ${channelVar}, message)`
202
+ });
203
+ testContent += ` /**
204
+ * LMS Publisher Tests
205
+ * Original Aura: component.find('recordSelected').publish(payload)
206
+ */
207
+ describe('LMS Publishing - ${lms.channelName}', () => {
208
+ test('should not subscribe to message channel (publisher only)', () => {
209
+ // Arrange & Act
210
+ document.body.appendChild(element);
211
+
212
+ // Assert - publisher should NOT subscribe
213
+ expect(subscribe).not.toHaveBeenCalled();
214
+ });
215
+
216
+ test('should publish message when publishMessage is called', async () => {
217
+ // Arrange
218
+ document.body.appendChild(element);
219
+ const mockRecordId = '003xx000004TtgAAC';
220
+
221
+ // Act
222
+ element.publishMessage({ recordId: mockRecordId });
223
+
224
+ // Assert
225
+ expect(publish).toHaveBeenCalledWith(
226
+ expect.anything(), // MessageContext
227
+ ${channelVar},
228
+ expect.objectContaining({ recordId: mockRecordId })
229
+ );
230
+ });
231
+ });
232
+
233
+ `;
234
+ }
235
+ }
236
+ // Generate Wire/Data tests
237
+ if (transformedMarkup.recordDataServices.length > 0) {
238
+ testContent += ` /**
239
+ * Wire Adapter Tests (force:recordData equivalent)
240
+ * Original Aura: force:recordData with reactive recordId binding
241
+ */
242
+ describe('Record Data Loading', () => {
243
+ `;
244
+ for (const rds of transformedMarkup.recordDataServices) {
245
+ const targetProp = rds.targetFields || 'record';
246
+ testContent += ` test('should wire ${targetProp} with reactive ${rds.recordIdBinding}', async () => {
247
+ // This test verifies the @wire decorator is properly configured
248
+ // In Aura: force:recordData recordId="{!v.${rds.recordIdBinding}}" targetFields="{!v.${targetProp}}"
249
+ // In LWC: @wire(getRecord, { recordId: '$${rds.recordIdBinding}', fields: [...] }) ${targetProp};
250
+
251
+ // Arrange
252
+ const mockRecord = {
253
+ data: {
254
+ fields: {
255
+ ${rds.fields.map(f => ` ${f}: { value: 'Test ${f}' }`).join(',\n')}
256
+ }
257
+ }
258
+ };
259
+
260
+ // Act
261
+ document.body.appendChild(element);
262
+
263
+ // Simulate wire returning data
264
+ // Note: In actual test, you'd use @salesforce/sfdx-lwc-jest wire adapter mocking
265
+
266
+ // Assert structure exists
267
+ expect(element).toBeDefined();
268
+ });
269
+
270
+ `;
271
+ // Generate getter tests for each field
272
+ for (const field of rds.fields) {
273
+ const getterName = field.charAt(0).toLowerCase() + field.slice(1).replace(/__c$/i, '');
274
+ testContent += ` test('getter ${getterName} should return undefined when no data', () => {
275
+ // Original Aura: {!v.${targetProp}.${field}}
276
+ // Converted LWC: {${getterName}} via getter using getFieldValue
277
+
278
+ document.body.appendChild(element);
279
+ expect(element.${getterName}).toBeUndefined();
280
+ });
281
+
282
+ `;
283
+ }
284
+ }
285
+ testContent += ` });
286
+
287
+ `;
288
+ }
289
+ // Generate init/Apex wire tests
290
+ if (initApexMethod) {
291
+ testContent += ` /**
292
+ * Init/Data Loading Tests
293
+ * Original Aura: aura:handler name="init" calling ${initApexMethod}
294
+ * Converted LWC: @wire(${initApexMethod})
295
+ */
296
+ describe('Initial Data Loading', () => {
297
+ test('should wire ${initApexMethod} for automatic data loading', () => {
298
+ // In Aura: doInit called $A.enqueueAction for ${initApexMethod}
299
+ // In LWC: @wire(${initApexMethod}) loads data declaratively
300
+
301
+ document.body.appendChild(element);
302
+
303
+ // With @wire, data loads automatically - no imperative call needed
304
+ // The test verifies the wire adapter is properly configured
305
+ expect(element).toBeDefined();
306
+ });
307
+ });
308
+
309
+ `;
310
+ }
311
+ // Generate UI rendering tests
312
+ testContent += ` /**
313
+ * UI Rendering Tests
314
+ * Verify template renders correctly with data
315
+ */
316
+ describe('UI Rendering', () => {
317
+ test('should render component', () => {
318
+ document.body.appendChild(element);
319
+ expect(element).toBeTruthy();
320
+ });
321
+
322
+ test('should render lightning-card with correct title', () => {
323
+ document.body.appendChild(element);
324
+ const card = element.shadowRoot.querySelector('lightning-card');
325
+ expect(card).toBeTruthy();
326
+ expect(card.title).toBe('${markup.componentName}');
327
+ });
328
+ `;
329
+ // Add conditional rendering tests if aura:if was present
330
+ if (markup.body.some(node => node.name === 'aura:if')) {
331
+ testContent += `
332
+ test('should conditionally render content', async () => {
333
+ // Original Aura: <aura:if isTrue="{!v.someCondition}">
334
+ // Converted LWC: <template if:true={someCondition}>
335
+
336
+ document.body.appendChild(element);
337
+
338
+ // Initially should not show conditional content
339
+ // After data loads, should show content
340
+ });
341
+ `;
342
+ }
343
+ testContent += ` });
344
+ });
345
+ `;
346
+ return {
347
+ filename: `${lwcName}.test.js`,
348
+ content: testContent,
349
+ behaviorSpecs
350
+ };
351
+ }
352
+ /**
353
+ * Generate a behavior specification document that maps Aura behaviors to LWC equivalents
354
+ */
355
+ function generateBehaviorSpecDocument(componentName, specs) {
356
+ const lwcName = (0, file_io_1.toLwcName)(componentName);
357
+ let doc = `# Behavior Specification: ${componentName} → ${lwcName}
358
+
359
+ This document maps the expected behaviors from the original Aura component to their LWC equivalents.
360
+ Use this as a checklist to verify the conversion is correct.
361
+
362
+ ## Behavior Mapping
363
+
364
+ | Category | Behavior | Aura Pattern | LWC Equivalent |
365
+ |----------|----------|--------------|----------------|
366
+ `;
367
+ for (const spec of specs) {
368
+ doc += `| ${spec.category} | ${spec.description} | \`${spec.auraPattern}\` | \`${spec.lwcEquivalent}\` |\n`;
369
+ }
370
+ doc += `
371
+ ## Test Checklist
372
+
373
+ `;
374
+ const categories = [...new Set(specs.map(s => s.category))];
375
+ for (const cat of categories) {
376
+ const catSpecs = specs.filter(s => s.category === cat);
377
+ doc += `### ${cat.charAt(0).toUpperCase() + cat.slice(1)} Tests\n\n`;
378
+ for (const spec of catSpecs) {
379
+ doc += `- [ ] ${spec.description}\n`;
380
+ }
381
+ doc += '\n';
382
+ }
383
+ return doc;
384
+ }
385
+ //# sourceMappingURL=test-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-generator.js","sourceRoot":"","sources":["../../src/generators/test-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * lwc-convert - CLI tool to convert Aura and Visualforce components to LWC
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG"}