test-genie-mcp 2.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 (102) hide show
  1. package/README.md +219 -0
  2. package/dist/analyzers/astAnalyzer.d.ts +108 -0
  3. package/dist/analyzers/astAnalyzer.d.ts.map +1 -0
  4. package/dist/analyzers/astAnalyzer.js +800 -0
  5. package/dist/analyzers/astAnalyzer.js.map +1 -0
  6. package/dist/analyzers/performanceAnalyzer.d.ts +90 -0
  7. package/dist/analyzers/performanceAnalyzer.d.ts.map +1 -0
  8. package/dist/analyzers/performanceAnalyzer.js +647 -0
  9. package/dist/analyzers/performanceAnalyzer.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +683 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/platforms/android/index.d.ts +90 -0
  15. package/dist/platforms/android/index.d.ts.map +1 -0
  16. package/dist/platforms/android/index.js +519 -0
  17. package/dist/platforms/android/index.js.map +1 -0
  18. package/dist/platforms/flutter/index.d.ts +105 -0
  19. package/dist/platforms/flutter/index.d.ts.map +1 -0
  20. package/dist/platforms/flutter/index.js +533 -0
  21. package/dist/platforms/flutter/index.js.map +1 -0
  22. package/dist/platforms/ios/index.d.ts +79 -0
  23. package/dist/platforms/ios/index.d.ts.map +1 -0
  24. package/dist/platforms/ios/index.js +393 -0
  25. package/dist/platforms/ios/index.js.map +1 -0
  26. package/dist/platforms/react-native/index.d.ts +160 -0
  27. package/dist/platforms/react-native/index.d.ts.map +1 -0
  28. package/dist/platforms/react-native/index.js +602 -0
  29. package/dist/platforms/react-native/index.js.map +1 -0
  30. package/dist/platforms/web/index.d.ts +177 -0
  31. package/dist/platforms/web/index.d.ts.map +1 -0
  32. package/dist/platforms/web/index.js +637 -0
  33. package/dist/platforms/web/index.js.map +1 -0
  34. package/dist/storage/index.d.ts +35 -0
  35. package/dist/storage/index.d.ts.map +1 -0
  36. package/dist/storage/index.js +351 -0
  37. package/dist/storage/index.js.map +1 -0
  38. package/dist/tools/analysis/analyzeAppStructure.d.ts +9 -0
  39. package/dist/tools/analysis/analyzeAppStructure.d.ts.map +1 -0
  40. package/dist/tools/analysis/analyzeAppStructure.js +289 -0
  41. package/dist/tools/analysis/analyzeAppStructure.js.map +1 -0
  42. package/dist/tools/analysis/createTestPlan.d.ts +21 -0
  43. package/dist/tools/analysis/createTestPlan.d.ts.map +1 -0
  44. package/dist/tools/analysis/createTestPlan.js +214 -0
  45. package/dist/tools/analysis/createTestPlan.js.map +1 -0
  46. package/dist/tools/analysis/generateScenarios.d.ts +21 -0
  47. package/dist/tools/analysis/generateScenarios.d.ts.map +1 -0
  48. package/dist/tools/analysis/generateScenarios.js +567 -0
  49. package/dist/tools/analysis/generateScenarios.js.map +1 -0
  50. package/dist/tools/automation/cicdIntegration.d.ts +41 -0
  51. package/dist/tools/automation/cicdIntegration.d.ts.map +1 -0
  52. package/dist/tools/automation/cicdIntegration.js +825 -0
  53. package/dist/tools/automation/cicdIntegration.js.map +1 -0
  54. package/dist/tools/automation/generateReport.d.ts +16 -0
  55. package/dist/tools/automation/generateReport.d.ts.map +1 -0
  56. package/dist/tools/automation/generateReport.js +406 -0
  57. package/dist/tools/automation/generateReport.js.map +1 -0
  58. package/dist/tools/automation/runFullAutomation.d.ts +25 -0
  59. package/dist/tools/automation/runFullAutomation.d.ts.map +1 -0
  60. package/dist/tools/automation/runFullAutomation.js +296 -0
  61. package/dist/tools/automation/runFullAutomation.js.map +1 -0
  62. package/dist/tools/detection/detectLogicErrors.d.ts +18 -0
  63. package/dist/tools/detection/detectLogicErrors.d.ts.map +1 -0
  64. package/dist/tools/detection/detectLogicErrors.js +470 -0
  65. package/dist/tools/detection/detectLogicErrors.js.map +1 -0
  66. package/dist/tools/detection/detectMemoryLeaks.d.ts +23 -0
  67. package/dist/tools/detection/detectMemoryLeaks.d.ts.map +1 -0
  68. package/dist/tools/detection/detectMemoryLeaks.js +453 -0
  69. package/dist/tools/detection/detectMemoryLeaks.js.map +1 -0
  70. package/dist/tools/execution/runScenarioTest.d.ts +34 -0
  71. package/dist/tools/execution/runScenarioTest.d.ts.map +1 -0
  72. package/dist/tools/execution/runScenarioTest.js +334 -0
  73. package/dist/tools/execution/runScenarioTest.js.map +1 -0
  74. package/dist/tools/execution/runSimulation.d.ts +17 -0
  75. package/dist/tools/execution/runSimulation.d.ts.map +1 -0
  76. package/dist/tools/execution/runSimulation.js +250 -0
  77. package/dist/tools/execution/runSimulation.js.map +1 -0
  78. package/dist/tools/execution/runStressTest.d.ts +52 -0
  79. package/dist/tools/execution/runStressTest.d.ts.map +1 -0
  80. package/dist/tools/execution/runStressTest.js +176 -0
  81. package/dist/tools/execution/runStressTest.js.map +1 -0
  82. package/dist/tools/fixing/applyFix.d.ts +44 -0
  83. package/dist/tools/fixing/applyFix.d.ts.map +1 -0
  84. package/dist/tools/fixing/applyFix.js +399 -0
  85. package/dist/tools/fixing/applyFix.js.map +1 -0
  86. package/dist/tools/fixing/confirmFix.d.ts +31 -0
  87. package/dist/tools/fixing/confirmFix.d.ts.map +1 -0
  88. package/dist/tools/fixing/confirmFix.js +136 -0
  89. package/dist/tools/fixing/confirmFix.js.map +1 -0
  90. package/dist/tools/fixing/suggestFixes.d.ts +23 -0
  91. package/dist/tools/fixing/suggestFixes.d.ts.map +1 -0
  92. package/dist/tools/fixing/suggestFixes.js +349 -0
  93. package/dist/tools/fixing/suggestFixes.js.map +1 -0
  94. package/dist/types.d.ts +322 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +6 -0
  97. package/dist/types.js.map +1 -0
  98. package/dist/utils/codeParser.d.ts +12 -0
  99. package/dist/utils/codeParser.d.ts.map +1 -0
  100. package/dist/utils/codeParser.js +487 -0
  101. package/dist/utils/codeParser.js.map +1 -0
  102. package/package.json +68 -0
@@ -0,0 +1,567 @@
1
+ "use strict";
2
+ // ============================================
3
+ // Generate Test Scenarios Tool
4
+ // ============================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateScenarios = generateScenarios;
7
+ const uuid_1 = require("uuid");
8
+ const index_js_1 = require("../../storage/index.js");
9
+ function generateScenarios(params) {
10
+ const { appStructure, testTypes = ['unit', 'integration', 'e2e'], coverage = 'standard', focusAreas = [], maxScenarios = 100, } = params;
11
+ const scenarios = [];
12
+ // Generate scenarios based on test types
13
+ if (testTypes.includes('e2e')) {
14
+ scenarios.push(...generateE2EScenarios(appStructure, coverage));
15
+ }
16
+ if (testTypes.includes('integration')) {
17
+ scenarios.push(...generateIntegrationScenarios(appStructure, coverage));
18
+ }
19
+ if (testTypes.includes('unit')) {
20
+ scenarios.push(...generateUnitScenarios(appStructure, coverage));
21
+ }
22
+ if (testTypes.includes('performance')) {
23
+ scenarios.push(...generatePerformanceScenarios(appStructure));
24
+ }
25
+ if (testTypes.includes('memory')) {
26
+ scenarios.push(...generateMemoryScenarios(appStructure));
27
+ }
28
+ // Filter by focus areas if specified
29
+ let filteredScenarios = scenarios;
30
+ if (focusAreas.length > 0) {
31
+ filteredScenarios = scenarios.filter(s => focusAreas.some(area => s.name.toLowerCase().includes(area.toLowerCase()) ||
32
+ s.tags.some(tag => tag.toLowerCase().includes(area.toLowerCase()))));
33
+ }
34
+ // Limit scenarios
35
+ const finalScenarios = filteredScenarios.slice(0, maxScenarios);
36
+ // Save scenarios
37
+ for (const scenario of finalScenarios) {
38
+ (0, index_js_1.saveScenario)(scenario, appStructure.projectPath);
39
+ }
40
+ return {
41
+ scenarios: finalScenarios,
42
+ coverage: {
43
+ screens: countCoveredScreens(finalScenarios, appStructure),
44
+ components: countCoveredComponents(finalScenarios, appStructure),
45
+ apis: countCoveredApis(finalScenarios, appStructure),
46
+ edgeCases: finalScenarios.filter(s => s.tags.includes('edge-case')).length,
47
+ },
48
+ summary: generateSummary(finalScenarios, appStructure),
49
+ };
50
+ }
51
+ // ============================================
52
+ // E2E Scenario Generation
53
+ // ============================================
54
+ function generateE2EScenarios(app, coverage) {
55
+ const scenarios = [];
56
+ // Happy path scenarios for each screen
57
+ for (const screen of app.screens) {
58
+ scenarios.push(createHappyPathScenario(screen, app));
59
+ // Navigation scenarios
60
+ for (const nav of screen.navigation) {
61
+ scenarios.push(createNavigationScenario(screen, nav, app));
62
+ }
63
+ // Edge cases
64
+ if (coverage === 'comprehensive') {
65
+ scenarios.push(...createEdgeCaseScenarios(screen, app));
66
+ }
67
+ }
68
+ // User flow scenarios
69
+ scenarios.push(...generateUserFlowScenarios(app, coverage));
70
+ return scenarios;
71
+ }
72
+ function createHappyPathScenario(screen, app) {
73
+ const steps = [
74
+ {
75
+ order: 1,
76
+ action: 'navigate',
77
+ target: screen.name,
78
+ expectedOutput: `${screen.name} is displayed`,
79
+ },
80
+ {
81
+ order: 2,
82
+ action: 'verify',
83
+ target: 'screen',
84
+ expectedOutput: 'All UI elements are visible',
85
+ },
86
+ ];
87
+ // Add interaction steps based on components
88
+ let stepOrder = 3;
89
+ for (const component of screen.components.slice(0, 5)) {
90
+ steps.push({
91
+ order: stepOrder++,
92
+ action: 'interact',
93
+ target: component,
94
+ expectedOutput: 'Component responds correctly',
95
+ });
96
+ }
97
+ return {
98
+ id: (0, uuid_1.v4)(),
99
+ name: `[E2E] ${screen.name} - Happy Path`,
100
+ description: `Verify ${screen.name} displays correctly and basic interactions work`,
101
+ type: 'e2e',
102
+ priority: 'high',
103
+ steps,
104
+ preconditions: ['App is launched', 'User is authenticated'],
105
+ expectedResults: ['Screen loads successfully', 'All elements are interactive'],
106
+ tags: ['e2e', 'happy-path', screen.name.toLowerCase()],
107
+ estimatedDuration: 30,
108
+ createdAt: new Date().toISOString(),
109
+ };
110
+ }
111
+ function createNavigationScenario(screen, nav, app) {
112
+ return {
113
+ id: (0, uuid_1.v4)(),
114
+ name: `[E2E] Navigation: ${screen.name} → ${nav.target}`,
115
+ description: `Verify navigation from ${screen.name} to ${nav.target}`,
116
+ type: 'e2e',
117
+ priority: 'medium',
118
+ steps: [
119
+ { order: 1, action: 'navigate', target: screen.name, expectedOutput: `${screen.name} is displayed` },
120
+ { order: 2, action: 'tap', target: `navigate_to_${nav.target}`, expectedOutput: 'Navigation triggered' },
121
+ { order: 3, action: 'verify', target: nav.target, expectedOutput: `${nav.target} is displayed` },
122
+ ],
123
+ preconditions: ['App is launched', `${screen.name} is accessible`],
124
+ expectedResults: [`Successfully navigated to ${nav.target}`],
125
+ tags: ['e2e', 'navigation', screen.name.toLowerCase(), nav.target.toLowerCase()],
126
+ estimatedDuration: 15,
127
+ createdAt: new Date().toISOString(),
128
+ };
129
+ }
130
+ function createEdgeCaseScenarios(screen, app) {
131
+ const scenarios = [];
132
+ // Empty state
133
+ scenarios.push({
134
+ id: (0, uuid_1.v4)(),
135
+ name: `[E2E] ${screen.name} - Empty State`,
136
+ description: `Verify ${screen.name} handles empty data gracefully`,
137
+ type: 'e2e',
138
+ priority: 'medium',
139
+ steps: [
140
+ { order: 1, action: 'mock', target: 'api', input: 'empty_response' },
141
+ { order: 2, action: 'navigate', target: screen.name },
142
+ { order: 3, action: 'verify', target: 'empty_state', expectedOutput: 'Empty state message displayed' },
143
+ ],
144
+ preconditions: ['App is launched', 'API returns empty data'],
145
+ expectedResults: ['Empty state is displayed correctly'],
146
+ tags: ['e2e', 'edge-case', 'empty-state', screen.name.toLowerCase()],
147
+ estimatedDuration: 20,
148
+ createdAt: new Date().toISOString(),
149
+ });
150
+ // Error state
151
+ scenarios.push({
152
+ id: (0, uuid_1.v4)(),
153
+ name: `[E2E] ${screen.name} - Error Handling`,
154
+ description: `Verify ${screen.name} handles API errors gracefully`,
155
+ type: 'e2e',
156
+ priority: 'high',
157
+ steps: [
158
+ { order: 1, action: 'mock', target: 'api', input: 'error_500' },
159
+ { order: 2, action: 'navigate', target: screen.name },
160
+ { order: 3, action: 'verify', target: 'error_state', expectedOutput: 'Error message displayed' },
161
+ { order: 4, action: 'tap', target: 'retry_button', expectedOutput: 'Retry triggered' },
162
+ ],
163
+ preconditions: ['App is launched', 'API returns error'],
164
+ expectedResults: ['Error state is displayed', 'Retry works correctly'],
165
+ tags: ['e2e', 'edge-case', 'error-handling', screen.name.toLowerCase()],
166
+ estimatedDuration: 25,
167
+ createdAt: new Date().toISOString(),
168
+ });
169
+ // Network offline
170
+ scenarios.push({
171
+ id: (0, uuid_1.v4)(),
172
+ name: `[E2E] ${screen.name} - Offline Mode`,
173
+ description: `Verify ${screen.name} handles offline state`,
174
+ type: 'e2e',
175
+ priority: 'medium',
176
+ steps: [
177
+ { order: 1, action: 'set_network', target: 'offline' },
178
+ { order: 2, action: 'navigate', target: screen.name },
179
+ { order: 3, action: 'verify', target: 'offline_indicator', expectedOutput: 'Offline message shown' },
180
+ ],
181
+ preconditions: ['App is launched', 'Network is disabled'],
182
+ expectedResults: ['Offline state is handled gracefully'],
183
+ tags: ['e2e', 'edge-case', 'offline', screen.name.toLowerCase()],
184
+ estimatedDuration: 20,
185
+ createdAt: new Date().toISOString(),
186
+ });
187
+ return scenarios;
188
+ }
189
+ function generateUserFlowScenarios(app, coverage) {
190
+ const scenarios = [];
191
+ // Common user flows based on app structure
192
+ const flows = detectUserFlows(app);
193
+ for (const flow of flows) {
194
+ const steps = flow.screens.map((screen, index) => ({
195
+ order: index + 1,
196
+ action: index === 0 ? 'navigate' : 'tap',
197
+ target: screen,
198
+ expectedOutput: `${screen} is displayed`,
199
+ }));
200
+ scenarios.push({
201
+ id: (0, uuid_1.v4)(),
202
+ name: `[E2E] User Flow: ${flow.name}`,
203
+ description: flow.description,
204
+ type: 'e2e',
205
+ priority: 'high',
206
+ steps,
207
+ preconditions: flow.preconditions,
208
+ expectedResults: flow.expectedResults,
209
+ tags: ['e2e', 'user-flow', ...flow.tags],
210
+ estimatedDuration: flow.screens.length * 10,
211
+ createdAt: new Date().toISOString(),
212
+ });
213
+ }
214
+ return scenarios;
215
+ }
216
+ function detectUserFlows(app) {
217
+ const flows = [];
218
+ const screenNames = app.screens.map(s => s.name.toLowerCase());
219
+ // Login flow
220
+ if (screenNames.some(s => s.includes('login') || s.includes('signin'))) {
221
+ flows.push({
222
+ name: 'Login Flow',
223
+ description: 'Complete user login process',
224
+ screens: ['Login', 'Home'],
225
+ preconditions: ['App is launched', 'User has valid credentials'],
226
+ expectedResults: ['User is logged in', 'Home screen is displayed'],
227
+ tags: ['auth', 'login'],
228
+ });
229
+ }
230
+ // Registration flow
231
+ if (screenNames.some(s => s.includes('register') || s.includes('signup'))) {
232
+ flows.push({
233
+ name: 'Registration Flow',
234
+ description: 'Complete user registration process',
235
+ screens: ['Register', 'Verification', 'Home'],
236
+ preconditions: ['App is launched', 'User has valid email'],
237
+ expectedResults: ['Account is created', 'User is logged in'],
238
+ tags: ['auth', 'registration'],
239
+ });
240
+ }
241
+ // Onboarding flow
242
+ if (screenNames.some(s => s.includes('onboarding') || s.includes('tutorial'))) {
243
+ flows.push({
244
+ name: 'Onboarding Flow',
245
+ description: 'Complete onboarding tutorial',
246
+ screens: ['Onboarding1', 'Onboarding2', 'Onboarding3', 'Home'],
247
+ preconditions: ['First app launch'],
248
+ expectedResults: ['Onboarding completed', 'Main screen displayed'],
249
+ tags: ['onboarding'],
250
+ });
251
+ }
252
+ // Settings flow
253
+ if (screenNames.some(s => s.includes('settings') || s.includes('profile'))) {
254
+ flows.push({
255
+ name: 'Settings Update Flow',
256
+ description: 'Update user settings',
257
+ screens: ['Home', 'Settings', 'Edit', 'Settings'],
258
+ preconditions: ['User is logged in'],
259
+ expectedResults: ['Settings updated successfully'],
260
+ tags: ['settings', 'profile'],
261
+ });
262
+ }
263
+ return flows;
264
+ }
265
+ // ============================================
266
+ // Integration Scenario Generation
267
+ // ============================================
268
+ function generateIntegrationScenarios(app, coverage) {
269
+ const scenarios = [];
270
+ // API integration scenarios
271
+ for (const api of app.apis) {
272
+ scenarios.push({
273
+ id: (0, uuid_1.v4)(),
274
+ name: `[Integration] API: ${api.method} ${api.endpoint}`,
275
+ description: `Test ${api.method} ${api.endpoint} integration`,
276
+ type: 'integration',
277
+ priority: 'high',
278
+ steps: [
279
+ { order: 1, action: 'prepare', target: 'request', input: JSON.stringify({ method: api.method, endpoint: api.endpoint }) },
280
+ { order: 2, action: 'execute', target: 'api_call', expectedOutput: 'Response received' },
281
+ { order: 3, action: 'verify', target: 'response', expectedOutput: 'Valid response structure' },
282
+ ],
283
+ preconditions: ['API server is running', 'Valid authentication token'],
284
+ expectedResults: ['API returns valid response', 'Response matches expected schema'],
285
+ tags: ['integration', 'api', api.method.toLowerCase()],
286
+ estimatedDuration: 10,
287
+ createdAt: new Date().toISOString(),
288
+ });
289
+ // Error handling for API
290
+ if (coverage === 'comprehensive') {
291
+ scenarios.push({
292
+ id: (0, uuid_1.v4)(),
293
+ name: `[Integration] API Error: ${api.method} ${api.endpoint}`,
294
+ description: `Test error handling for ${api.method} ${api.endpoint}`,
295
+ type: 'integration',
296
+ priority: 'medium',
297
+ steps: [
298
+ { order: 1, action: 'mock', target: 'api', input: 'error_response' },
299
+ { order: 2, action: 'execute', target: 'api_call' },
300
+ { order: 3, action: 'verify', target: 'error_handling', expectedOutput: 'Error handled gracefully' },
301
+ ],
302
+ preconditions: ['API mocked to return error'],
303
+ expectedResults: ['Error is caught', 'User-friendly message displayed'],
304
+ tags: ['integration', 'api', 'error-handling'],
305
+ estimatedDuration: 10,
306
+ createdAt: new Date().toISOString(),
307
+ });
308
+ }
309
+ }
310
+ // State management integration
311
+ if (app.stateManagement) {
312
+ scenarios.push({
313
+ id: (0, uuid_1.v4)(),
314
+ name: `[Integration] State Management: ${app.stateManagement.type}`,
315
+ description: `Test ${app.stateManagement.type} state synchronization`,
316
+ type: 'integration',
317
+ priority: 'high',
318
+ steps: [
319
+ { order: 1, action: 'dispatch', target: 'action', input: 'test_action' },
320
+ { order: 2, action: 'verify', target: 'state', expectedOutput: 'State updated correctly' },
321
+ { order: 3, action: 'verify', target: 'ui', expectedOutput: 'UI reflects state change' },
322
+ ],
323
+ preconditions: ['Store is initialized'],
324
+ expectedResults: ['State updates propagate correctly', 'UI reflects state changes'],
325
+ tags: ['integration', 'state-management', app.stateManagement.type],
326
+ estimatedDuration: 15,
327
+ createdAt: new Date().toISOString(),
328
+ });
329
+ }
330
+ return scenarios;
331
+ }
332
+ // ============================================
333
+ // Unit Scenario Generation
334
+ // ============================================
335
+ function generateUnitScenarios(app, coverage) {
336
+ const scenarios = [];
337
+ // Component unit tests
338
+ for (const component of app.components.slice(0, 20)) {
339
+ // Props validation
340
+ if (component.props.length > 0) {
341
+ scenarios.push({
342
+ id: (0, uuid_1.v4)(),
343
+ name: `[Unit] ${component.name} - Props Validation`,
344
+ description: `Test ${component.name} with various prop combinations`,
345
+ type: 'unit',
346
+ priority: 'medium',
347
+ steps: [
348
+ { order: 1, action: 'render', target: component.name, input: 'valid_props' },
349
+ { order: 2, action: 'verify', target: 'rendered', expectedOutput: 'Component rendered' },
350
+ ],
351
+ preconditions: ['Component imported'],
352
+ expectedResults: ['Component renders with valid props', 'PropTypes/TypeScript validation passes'],
353
+ tags: ['unit', 'component', component.name.toLowerCase()],
354
+ estimatedDuration: 5,
355
+ createdAt: new Date().toISOString(),
356
+ });
357
+ }
358
+ // State changes
359
+ if (component.state.length > 0) {
360
+ scenarios.push({
361
+ id: (0, uuid_1.v4)(),
362
+ name: `[Unit] ${component.name} - State Changes`,
363
+ description: `Test ${component.name} state transitions`,
364
+ type: 'unit',
365
+ priority: 'medium',
366
+ steps: [
367
+ { order: 1, action: 'render', target: component.name },
368
+ { order: 2, action: 'trigger', target: 'state_change' },
369
+ { order: 3, action: 'verify', target: 'state', expectedOutput: 'State updated correctly' },
370
+ ],
371
+ preconditions: ['Component mounted'],
372
+ expectedResults: ['State changes correctly', 'Re-render triggered'],
373
+ tags: ['unit', 'state', component.name.toLowerCase()],
374
+ estimatedDuration: 5,
375
+ createdAt: new Date().toISOString(),
376
+ });
377
+ }
378
+ }
379
+ return scenarios;
380
+ }
381
+ // ============================================
382
+ // Performance Scenario Generation
383
+ // ============================================
384
+ function generatePerformanceScenarios(app) {
385
+ const scenarios = [];
386
+ // Screen load time
387
+ for (const screen of app.screens.slice(0, 5)) {
388
+ scenarios.push({
389
+ id: (0, uuid_1.v4)(),
390
+ name: `[Performance] ${screen.name} - Load Time`,
391
+ description: `Measure ${screen.name} initial load time`,
392
+ type: 'performance',
393
+ priority: 'high',
394
+ steps: [
395
+ { order: 1, action: 'start_profiling', target: 'cpu_memory' },
396
+ { order: 2, action: 'navigate', target: screen.name },
397
+ { order: 3, action: 'measure', target: 'time_to_interactive', expectedOutput: '< 2000ms' },
398
+ { order: 4, action: 'stop_profiling' },
399
+ ],
400
+ preconditions: ['App is launched', 'Cold start'],
401
+ expectedResults: ['Load time under 2 seconds', 'No frame drops'],
402
+ tags: ['performance', 'load-time', screen.name.toLowerCase()],
403
+ estimatedDuration: 30,
404
+ createdAt: new Date().toISOString(),
405
+ });
406
+ }
407
+ // List scrolling performance
408
+ scenarios.push({
409
+ id: (0, uuid_1.v4)(),
410
+ name: '[Performance] List Scrolling - 60fps',
411
+ description: 'Ensure list scrolling maintains 60fps',
412
+ type: 'performance',
413
+ priority: 'high',
414
+ steps: [
415
+ { order: 1, action: 'navigate', target: 'list_screen' },
416
+ { order: 2, action: 'load_data', input: '1000_items' },
417
+ { order: 3, action: 'scroll', target: 'list', input: 'fast_scroll' },
418
+ { order: 4, action: 'measure', target: 'frame_rate', expectedOutput: '>= 60fps' },
419
+ ],
420
+ preconditions: ['List screen available', 'Large dataset loaded'],
421
+ expectedResults: ['Scrolling is smooth', 'No dropped frames'],
422
+ tags: ['performance', 'scrolling', 'fps'],
423
+ estimatedDuration: 45,
424
+ createdAt: new Date().toISOString(),
425
+ });
426
+ // API response time
427
+ for (const api of app.apis.slice(0, 3)) {
428
+ scenarios.push({
429
+ id: (0, uuid_1.v4)(),
430
+ name: `[Performance] API: ${api.endpoint} Response Time`,
431
+ description: `Measure ${api.endpoint} response time`,
432
+ type: 'performance',
433
+ priority: 'medium',
434
+ steps: [
435
+ { order: 1, action: 'execute', target: api.endpoint },
436
+ { order: 2, action: 'measure', target: 'response_time', expectedOutput: '< 1000ms' },
437
+ ],
438
+ preconditions: ['Network available'],
439
+ expectedResults: ['Response time under 1 second'],
440
+ tags: ['performance', 'api', 'response-time'],
441
+ estimatedDuration: 10,
442
+ createdAt: new Date().toISOString(),
443
+ });
444
+ }
445
+ return scenarios;
446
+ }
447
+ // ============================================
448
+ // Memory Scenario Generation
449
+ // ============================================
450
+ function generateMemoryScenarios(app) {
451
+ const scenarios = [];
452
+ // Navigation memory leak check
453
+ scenarios.push({
454
+ id: (0, uuid_1.v4)(),
455
+ name: '[Memory] Navigation Memory Leak Check',
456
+ description: 'Check for memory leaks during navigation',
457
+ type: 'memory',
458
+ priority: 'critical',
459
+ steps: [
460
+ { order: 1, action: 'snapshot', target: 'heap' },
461
+ { order: 2, action: 'navigate', target: 'screen_a' },
462
+ { order: 3, action: 'navigate', target: 'screen_b' },
463
+ { order: 4, action: 'navigate', target: 'screen_a' },
464
+ { order: 5, action: 'repeat', target: 'steps_2-4', input: '10_times' },
465
+ { order: 6, action: 'snapshot', target: 'heap' },
466
+ { order: 7, action: 'compare', target: 'snapshots', expectedOutput: 'No significant memory increase' },
467
+ ],
468
+ preconditions: ['App is launched'],
469
+ expectedResults: ['No memory leaks detected', 'Memory usage stable'],
470
+ tags: ['memory', 'leak', 'navigation'],
471
+ estimatedDuration: 120,
472
+ createdAt: new Date().toISOString(),
473
+ });
474
+ // Component lifecycle memory check
475
+ for (const component of app.components.filter(c => c.lifecycle.length > 0).slice(0, 3)) {
476
+ scenarios.push({
477
+ id: (0, uuid_1.v4)(),
478
+ name: `[Memory] ${component.name} - Lifecycle Cleanup`,
479
+ description: `Verify ${component.name} properly cleans up resources`,
480
+ type: 'memory',
481
+ priority: 'high',
482
+ steps: [
483
+ { order: 1, action: 'snapshot', target: 'heap' },
484
+ { order: 2, action: 'mount', target: component.name },
485
+ { order: 3, action: 'unmount', target: component.name },
486
+ { order: 4, action: 'repeat', target: 'steps_2-3', input: '5_times' },
487
+ { order: 5, action: 'force_gc' },
488
+ { order: 6, action: 'snapshot', target: 'heap' },
489
+ { order: 7, action: 'compare', target: 'snapshots', expectedOutput: 'No retained objects' },
490
+ ],
491
+ preconditions: ['Component available'],
492
+ expectedResults: ['All subscriptions cleaned up', 'No memory retention'],
493
+ tags: ['memory', 'lifecycle', component.name.toLowerCase()],
494
+ estimatedDuration: 60,
495
+ createdAt: new Date().toISOString(),
496
+ });
497
+ }
498
+ // Long session memory check
499
+ scenarios.push({
500
+ id: (0, uuid_1.v4)(),
501
+ name: '[Memory] Long Session Stability',
502
+ description: 'Check memory stability during extended use',
503
+ type: 'memory',
504
+ priority: 'high',
505
+ steps: [
506
+ { order: 1, action: 'snapshot', target: 'heap' },
507
+ { order: 2, action: 'simulate', target: 'user_session', input: '30_minutes' },
508
+ { order: 3, action: 'snapshot', target: 'heap' },
509
+ { order: 4, action: 'compare', target: 'snapshots', expectedOutput: 'Memory growth < 50MB' },
510
+ ],
511
+ preconditions: ['App is launched'],
512
+ expectedResults: ['Memory usage remains stable', 'No OOM crashes'],
513
+ tags: ['memory', 'stability', 'long-session'],
514
+ estimatedDuration: 1800,
515
+ createdAt: new Date().toISOString(),
516
+ });
517
+ return scenarios;
518
+ }
519
+ // ============================================
520
+ // Helper Functions
521
+ // ============================================
522
+ function countCoveredScreens(scenarios, app) {
523
+ const coveredScreens = new Set();
524
+ for (const scenario of scenarios) {
525
+ for (const step of scenario.steps) {
526
+ if (step.target) {
527
+ const matchingScreen = app.screens.find(s => s.name.toLowerCase().includes(step.target.toLowerCase()));
528
+ if (matchingScreen) {
529
+ coveredScreens.add(matchingScreen.name);
530
+ }
531
+ }
532
+ }
533
+ }
534
+ return coveredScreens.size;
535
+ }
536
+ function countCoveredComponents(scenarios, app) {
537
+ const coveredComponents = new Set();
538
+ for (const scenario of scenarios) {
539
+ for (const tag of scenario.tags) {
540
+ const matchingComponent = app.components.find(c => c.name.toLowerCase() === tag.toLowerCase());
541
+ if (matchingComponent) {
542
+ coveredComponents.add(matchingComponent.name);
543
+ }
544
+ }
545
+ }
546
+ return coveredComponents.size;
547
+ }
548
+ function countCoveredApis(scenarios, app) {
549
+ return scenarios.filter(s => s.tags.includes('api')).length;
550
+ }
551
+ function generateSummary(scenarios, app) {
552
+ const byType = {};
553
+ const byPriority = {};
554
+ for (const scenario of scenarios) {
555
+ byType[scenario.type] = (byType[scenario.type] || 0) + 1;
556
+ byPriority[scenario.priority] = (byPriority[scenario.priority] || 0) + 1;
557
+ }
558
+ const typeBreakdown = Object.entries(byType)
559
+ .map(([type, count]) => `${type}: ${count}`)
560
+ .join(', ');
561
+ const priorityBreakdown = Object.entries(byPriority)
562
+ .map(([priority, count]) => `${priority}: ${count}`)
563
+ .join(', ');
564
+ return `Generated ${scenarios.length} test scenarios for ${app.screens.length} screens and ${app.components.length} components. Types: ${typeBreakdown}. Priority: ${priorityBreakdown}.`;
565
+ }
566
+ exports.default = generateScenarios;
567
+ //# sourceMappingURL=generateScenarios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateScenarios.js","sourceRoot":"","sources":["../../../src/tools/analysis/generateScenarios.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { Platform } from '../../types.js';
2
+ export interface CICDConfig {
3
+ projectPath: string;
4
+ platform: Platform;
5
+ provider: 'github-actions' | 'jenkins' | 'gitlab-ci' | 'circleci';
6
+ options?: {
7
+ testCommand?: string;
8
+ buildCommand?: string;
9
+ deployCommand?: string;
10
+ notifyOnFailure?: boolean;
11
+ cacheEnabled?: boolean;
12
+ parallelTests?: boolean;
13
+ branches?: string[];
14
+ };
15
+ }
16
+ export interface CICDGeneratedConfig {
17
+ provider: string;
18
+ filePath: string;
19
+ content: string;
20
+ additionalFiles?: {
21
+ path: string;
22
+ content: string;
23
+ }[];
24
+ }
25
+ export declare function generateGitHubActions(config: CICDConfig): CICDGeneratedConfig;
26
+ export declare function generateJenkinsfile(config: CICDConfig): CICDGeneratedConfig;
27
+ export declare function generateGitLabCI(config: CICDConfig): CICDGeneratedConfig;
28
+ export declare function generateCICDConfig(config: CICDConfig): CICDGeneratedConfig;
29
+ export declare function writeCICDConfig(config: CICDConfig): {
30
+ success: boolean;
31
+ files: string[];
32
+ };
33
+ declare const _default: {
34
+ generateCICDConfig: typeof generateCICDConfig;
35
+ writeCICDConfig: typeof writeCICDConfig;
36
+ generateGitHubActions: typeof generateGitHubActions;
37
+ generateJenkinsfile: typeof generateJenkinsfile;
38
+ generateGitLabCI: typeof generateGitLabCI;
39
+ };
40
+ export default _default;
41
+ //# sourceMappingURL=cicdIntegration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cicdIntegration.d.ts","sourceRoot":"","sources":["../../../src/tools/automation/cicdIntegration.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK1C,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAClE,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvD;AAKD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAoC7E;AA6eD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAuI3E;AAKD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,CA4GxE;AAKD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAW1E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAkCzF;;;;;;;;AAED,wBAME"}