1+ name : Code Validation Pipeline Tests
2+
3+ on :
4+ push :
5+ branches : [ main, develop ]
6+ pull_request :
7+ branches : [ main ]
8+ workflow_dispatch :
9+
10+ jobs :
11+ test :
12+ name : Test Suite
13+ runs-on : ubuntu-latest
14+
15+ strategy :
16+ matrix :
17+ node-version : [16.x, 18.x, 20.x]
18+
19+ steps :
20+ - name : Checkout code
21+ uses : actions/checkout@v4
22+
23+ - name : Use Node.js ${{ matrix.node-version }}
24+ uses : actions/setup-node@v4
25+ with :
26+ node-version : ${{ matrix.node-version }}
27+ cache : ' npm'
28+
29+ - name : Install dependencies
30+ run : npm run install-deps
31+
32+ - name : Run comprehensive test suite
33+ run : npm test
34+
35+ - name : Run examples
36+ run : npm run example
37+
38+ - name : Test pipeline statistics
39+ run : |
40+ node -e "
41+ const ValidationPipeline = require('./validation_pipeline');
42+ const pipeline = new ValidationPipeline();
43+ console.log('Pipeline Stats:', pipeline.getStats());
44+ console.log('Supported Languages:', pipeline.getSupportedLanguages());
45+ "
46+
47+ security :
48+ name : Security Audit
49+ runs-on : ubuntu-latest
50+
51+ steps :
52+ - name : Checkout code
53+ uses : actions/checkout@v4
54+
55+ - name : Use Node.js
56+ uses : actions/setup-node@v4
57+ with :
58+ node-version : ' 20.x'
59+
60+ - name : Install dependencies
61+ run : npm run install-deps
62+
63+ - name : Run security audit
64+ run : npm audit --audit-level moderate
65+
66+ - name : Check for vulnerabilities
67+ run : npm audit --audit-level high --production
68+
69+ lint :
70+ name : Code Quality
71+ runs-on : ubuntu-latest
72+
73+ steps :
74+ - name : Checkout code
75+ uses : actions/checkout@v4
76+
77+ - name : Use Node.js
78+ uses : actions/setup-node@v4
79+ with :
80+ node-version : ' 20.x'
81+
82+ - name : Check file structure
83+ run : |
84+ echo "Checking project structure..."
85+ ls -la
86+ echo "Validators:"
87+ ls -la validators/
88+ echo "Components:"
89+ ls -la components/
90+ echo "Tests:"
91+ ls -la tests/
92+ echo "Examples:"
93+ ls -la examples/
94+
95+ - name : Validate package.json
96+ run : node -p "JSON.stringify(require('./package.json'), null, 2)"
97+
98+ - name : Check for required files
99+ run : |
100+ test -f README.md || (echo "README.md missing" && exit 1)
101+ test -f LICENSE || (echo "LICENSE missing" && exit 1)
102+ test -f package.json || (echo "package.json missing" && exit 1)
103+ test -f validation_pipeline.js || (echo "Main file missing" && exit 1)
104+ echo "All required files present ✅"
105+
106+ integration :
107+ name : Integration Tests
108+ runs-on : ubuntu-latest
109+ needs : test
110+
111+ steps :
112+ - name : Checkout code
113+ uses : actions/checkout@v4
114+
115+ - name : Use Node.js
116+ uses : actions/setup-node@v4
117+ with :
118+ node-version : ' 20.x'
119+
120+ - name : Install dependencies
121+ run : npm run install-deps
122+
123+ - name : Test HTML validation
124+ run : |
125+ node -e "
126+ const ValidationPipeline = require('./validation_pipeline');
127+ const pipeline = new ValidationPipeline();
128+
129+ pipeline.execute({
130+ problemStatement: 'Create a simple HTML page',
131+ language: 'html',
132+ codeGenerator: () => '<!DOCTYPE html><html><head><title>Test</title></head><body><h1>Hello</h1></body></html>'
133+ }).then(result => {
134+ if (!result.success) throw new Error('HTML validation failed');
135+ console.log('✅ HTML validation passed');
136+ }).catch(console.error);
137+ "
138+
139+ - name : Test CSS validation
140+ run : |
141+ node -e "
142+ const ValidationPipeline = require('./validation_pipeline');
143+ const pipeline = new ValidationPipeline();
144+
145+ pipeline.execute({
146+ problemStatement: 'Create CSS styles',
147+ language: 'css',
148+ codeGenerator: () => 'body { margin: 0; padding: 20px; }'
149+ }).then(result => {
150+ if (!result.success) throw new Error('CSS validation failed');
151+ console.log('✅ CSS validation passed');
152+ }).catch(console.error);
153+ "
154+
155+ - name : Test JavaScript validation
156+ run : |
157+ node -e "
158+ const ValidationPipeline = require('./validation_pipeline');
159+ const pipeline = new ValidationPipeline();
160+
161+ pipeline.execute({
162+ problemStatement: 'Create a function',
163+ language: 'javascript',
164+ codeGenerator: () => 'function test() { return \"hello\"; }'
165+ }).then(result => {
166+ if (!result.success) throw new Error('JavaScript validation failed');
167+ console.log('✅ JavaScript validation passed');
168+ }).catch(console.error);
169+ "
0 commit comments