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