-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-planning-integration.js
More file actions
156 lines (115 loc) Β· 6.58 KB
/
test-planning-integration.js
File metadata and controls
156 lines (115 loc) Β· 6.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/usr/bin/env node
/**
* Integration test for the enhanced planning system
* Verifies that the new critical-issue-focused approach works correctly
*/
const fs = require('fs');
const path = require('path');
console.log('π§ͺ Integration Test: Enhanced Planning System');
console.log('===========================================\n');
async function testPlanningSystem() {
try {
// Mock repository analysis data that would be passed to the planning system
const mockRepositoryContent = `
package.json: { "name": "test-app", "dependencies": { "react": "^18.0.0", "express": "^4.0.0" } }
README.md: A Next.js application with React frontend and Express backend
src/components/: React components with some accessibility issues
src/api/: Express routes with potential security vulnerabilities
tests/: Limited test coverage
`;
const mockUserQuery = "Improve security and accessibility";
// Test 1: Verify system prompt prioritizes critical issues
console.log('π Test 1: System Prompt Analysis');
const planPath = path.join(__dirname, 'src/trigger/plan-implementation.ts');
const planContent = fs.readFileSync(planPath, 'utf8');
// Check for critical issue priorities
const hasCriticalPriorities = planContent.includes('CRITICAL ISSUES TO PRIORITIZE') &&
planContent.includes('Security vulnerabilities') &&
planContent.includes('Performance bottlenecks') &&
planContent.includes('Accessibility violations');
console.log(` Critical Issues Priority: ${hasCriticalPriorities ? 'β
PASS' : 'β FAIL'}`);
// Test 2: Verify project type detection logic
console.log('\nπ§ Test 2: Project Type Detection');
const hasProjectTypeDetection = planContent.includes('PROJECT TYPE DETECTION') &&
planContent.includes('FRONTEND REPOSITORIES') &&
planContent.includes('BACKEND REPOSITORIES');
console.log(` Project Type Detection: ${hasProjectTypeDetection ? 'β
PASS' : 'β FAIL'}`);
// Test 3: Verify frontend-specific checks
console.log('\nπ¨ Test 3: Frontend-Specific Checks');
const hasFrontendChecks = planContent.includes('Theming & Consistency') &&
planContent.includes('Accessibility') &&
planContent.includes('WCAG 2.1 AA compliance');
console.log(` Frontend Accessibility Checks: ${hasFrontendChecks ? 'β
PASS' : 'β FAIL'}`);
// Test 4: Verify backend-specific checks
console.log('\nπ Test 4: Backend-Specific Checks');
const hasBackendChecks = planContent.includes('12 Factor App Compliance') &&
planContent.includes('Security: Input validation') &&
planContent.includes('parameterized queries');
console.log(` Backend Security Checks: ${hasBackendChecks ? 'β
PASS' : 'β FAIL'}`);
// Test 5: Verify Solana-specific checks
console.log('\nβ‘ Test 5: Solana-Specific Checks');
const hasSolanaChecks = planContent.includes('SOLANA SMART CONTRACT') &&
planContent.includes('signer verification') &&
planContent.includes('arithmetic safety');
console.log(` Solana Security Checks: ${hasSolanaChecks ? 'β
PASS' : 'β FAIL'}`);
// Test 6: Verify Rust-specific checks
console.log('\nπ¦ Test 6: Rust-Specific Checks');
const hasRustChecks = planContent.includes('RUST BEST PRACTICES') &&
planContent.includes('Idiomatic Rust') &&
planContent.includes('Result/Option types');
console.log(` Rust Best Practices: ${hasRustChecks ? 'β
PASS' : 'β FAIL'}`);
// Test 7: Verify reduced innovation emphasis
console.log('\nπ‘ Test 7: Innovation Balance');
const innovationTerms = (planContent.match(/UNHINGED|DISRUPTIVE|BOLD.*innovation/gi) || []).length;
const criticalTerms = (planContent.match(/critical.*issues|security.*vulnerabilities|performance.*bottlenecks/gi) || []).length;
const balanceCorrect = innovationTerms === 0 && criticalTerms > 0;
console.log(` Innovation vs Critical Balance: ${balanceCorrect ? 'β
PASS' : 'β FAIL'}`);
console.log(` Innovation terms: ${innovationTerms}, Critical terms: ${criticalTerms}`);
// Test 8: Verify response format prioritization
console.log('\nπ Test 8: Response Format');
const responseFormat = planContent.match(/{\s*"repositoryOverview"[\s\S]*?"innovationIdeas"/);
let formatCorrect = false;
if (responseFormat) {
const format = responseFormat[0];
const criticalIndex = format.indexOf('"criticalFixes"');
const innovationIndex = format.indexOf('"innovationIdeas"');
formatCorrect = criticalIndex < innovationIndex && criticalIndex !== -1;
}
console.log(` Critical Issues First: ${formatCorrect ? 'β
PASS' : 'β FAIL'}`);
// Test 9: Verify refinement focus
console.log('\nπ Test 9: Refinement System');
const refinementCorrect = planContent.includes('newCriticalIssues') &&
planContent.includes('refinementRounds = 1') &&
planContent.includes('security and reliability expert');
console.log(` Critical Issue Refinement: ${refinementCorrect ? 'β
PASS' : 'β FAIL'}`);
// Overall result
console.log('\nπ Integration Test Results');
console.log('==========================');
const tests = [
hasCriticalPriorities,
hasProjectTypeDetection,
hasFrontendChecks,
hasBackendChecks,
hasSolanaChecks,
hasRustChecks,
balanceCorrect,
formatCorrect,
refinementCorrect
];
const passedTests = tests.filter(Boolean).length;
const totalTests = tests.length;
console.log(`Passed: ${passedTests}/${totalTests} tests`);
if (passedTests === totalTests) {
console.log('β
ALL TESTS PASSED - Enhanced planning system is working correctly!');
console.log('β
System now prioritizes critical issues over innovation');
console.log('β
Comprehensive checklists added for all project types');
console.log('β
Refinement system focuses on security and reliability');
} else {
console.log('β Some tests failed - review implementation');
}
} catch (error) {
console.error('β Integration test failed:', error.message);
}
}
// Run the test
testPlanningSystem();