frame.soap 1.2.4 ā 1.2.5
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.
- package/dist/__tests__/SoapTestSuite.d.ts +151 -0
- package/dist/__tests__/SoapTestSuite.d.ts.map +1 -0
- package/dist/__tests__/SoapTestSuite.js +572 -0
- package/dist/__tests__/SoapTestSuite.js.map +1 -0
- package/dist/scripts/test-agent.d.ts +44 -0
- package/dist/scripts/test-agent.d.ts.map +1 -0
- package/dist/scripts/test-agent.js +380 -0
- package/dist/scripts/test-agent.js.map +1 -0
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { TDiameterRequest, TDiameterRESTRequest, TSide } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Mock Data Generator for SOAP Test Services
|
|
4
|
+
* Provides realistic test data for comprehensive testing scenarios
|
|
5
|
+
*/
|
|
6
|
+
export declare class SoapTestDataGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generate mock diameter request with configurable parameters
|
|
9
|
+
*/
|
|
10
|
+
static createMockDiameterRequest(overrides?: Partial<TDiameterRequest>): TDiameterRequest;
|
|
11
|
+
/**
|
|
12
|
+
* Generate mock side data
|
|
13
|
+
*/
|
|
14
|
+
static createMockSide(identifier: string): TSide;
|
|
15
|
+
/**
|
|
16
|
+
* Generate mock REST request
|
|
17
|
+
*/
|
|
18
|
+
static createMockRESTRequest(overrides?: Partial<TDiameterRESTRequest>): TDiameterRESTRequest;
|
|
19
|
+
/**
|
|
20
|
+
* Generate edge case test data
|
|
21
|
+
*/
|
|
22
|
+
static createEdgeCaseData(): {
|
|
23
|
+
bkWunschMin: number;
|
|
24
|
+
bkWunschMax: number;
|
|
25
|
+
bkWunschInvalid: number[];
|
|
26
|
+
invalidOrderCodes: (string | null | undefined)[];
|
|
27
|
+
invalidLanguages: (string | null | undefined)[];
|
|
28
|
+
extremeOpticalValues: {
|
|
29
|
+
sph: number[];
|
|
30
|
+
zyl: number[];
|
|
31
|
+
ach: number[];
|
|
32
|
+
add: number[];
|
|
33
|
+
};
|
|
34
|
+
invalidCentering: {
|
|
35
|
+
zentrHor: (string | number)[];
|
|
36
|
+
zentrVer: (string | number)[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Performance Testing Utilities
|
|
42
|
+
*/
|
|
43
|
+
export declare class SoapPerformanceTester {
|
|
44
|
+
private static measurements;
|
|
45
|
+
static measureFunction<T>(name: string, fn: () => Promise<T>, iterations?: number): Promise<PerformanceMetrics>;
|
|
46
|
+
static measureConcurrentRequests<T>(name: string, fn: () => Promise<T>, concurrency?: number): Promise<ConcurrencyMetrics>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Data Validation Utilities
|
|
50
|
+
*/
|
|
51
|
+
export declare class SoapDataValidator {
|
|
52
|
+
/**
|
|
53
|
+
* Validate TDiameterRequest structure
|
|
54
|
+
*/
|
|
55
|
+
static validateDiameterRequest(request: any): ValidationResult;
|
|
56
|
+
/**
|
|
57
|
+
* Validate TSide structure
|
|
58
|
+
*/
|
|
59
|
+
static validateSide(side: any, sideName: string): ValidationResult;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Test Suite Orchestrator
|
|
63
|
+
*/
|
|
64
|
+
export declare class SoapTestSuite {
|
|
65
|
+
private formDataRequests;
|
|
66
|
+
private diameterRequests;
|
|
67
|
+
private traceRequests;
|
|
68
|
+
private results;
|
|
69
|
+
constructor();
|
|
70
|
+
runComprehensiveTests(): Promise<ComprehensiveTestResults>;
|
|
71
|
+
private runFormDataTests;
|
|
72
|
+
private runDiameterTests;
|
|
73
|
+
private runTraceTests;
|
|
74
|
+
private runPerformanceTests;
|
|
75
|
+
private runEdgeCaseTests;
|
|
76
|
+
private runValidationTests;
|
|
77
|
+
private executeTestGroup;
|
|
78
|
+
private testBrandRetrieval;
|
|
79
|
+
private testMultiLanguageSupport;
|
|
80
|
+
private testModelRetrieval;
|
|
81
|
+
private testFormKeyRequests;
|
|
82
|
+
private testDiameterCalculation;
|
|
83
|
+
private testRESTDiameterAPI;
|
|
84
|
+
private testStempelGravurFeatures;
|
|
85
|
+
private testDiameterErrorHandling;
|
|
86
|
+
private testTraceLogging;
|
|
87
|
+
private testDiameterCalculationLogging;
|
|
88
|
+
private testBrandRetrievalPerformance;
|
|
89
|
+
private testDiameterCalculationPerformance;
|
|
90
|
+
private testConcurrentRequests;
|
|
91
|
+
private testBoundaryValues;
|
|
92
|
+
private testInvalidInputs;
|
|
93
|
+
private testExtremeOpticalValues;
|
|
94
|
+
private testDataSchemaValidation;
|
|
95
|
+
private testTypeValidation;
|
|
96
|
+
private testRequiredFieldValidation;
|
|
97
|
+
}
|
|
98
|
+
export interface PerformanceMetrics {
|
|
99
|
+
name: string;
|
|
100
|
+
iterations: number;
|
|
101
|
+
times: number[];
|
|
102
|
+
averageTime: number;
|
|
103
|
+
minTime: number;
|
|
104
|
+
maxTime: number;
|
|
105
|
+
medianTime: number;
|
|
106
|
+
totalTime: number;
|
|
107
|
+
}
|
|
108
|
+
export interface ConcurrencyMetrics {
|
|
109
|
+
name: string;
|
|
110
|
+
concurrency: number;
|
|
111
|
+
successful: number;
|
|
112
|
+
failed: number;
|
|
113
|
+
totalTime: number;
|
|
114
|
+
requestsPerSecond: number;
|
|
115
|
+
successRate: number;
|
|
116
|
+
}
|
|
117
|
+
export interface ValidationResult {
|
|
118
|
+
isValid: boolean;
|
|
119
|
+
errors: string[];
|
|
120
|
+
warnings: string[];
|
|
121
|
+
}
|
|
122
|
+
export interface TestResult {
|
|
123
|
+
groupName: string;
|
|
124
|
+
passed: number;
|
|
125
|
+
failed: number;
|
|
126
|
+
warnings: number;
|
|
127
|
+
details: string[];
|
|
128
|
+
}
|
|
129
|
+
export interface TestSuiteResult {
|
|
130
|
+
name: string;
|
|
131
|
+
success: boolean;
|
|
132
|
+
duration: number;
|
|
133
|
+
details: string;
|
|
134
|
+
}
|
|
135
|
+
export interface ComprehensiveTestResults {
|
|
136
|
+
formDataTests: TestResult;
|
|
137
|
+
diameterTests: TestResult;
|
|
138
|
+
traceTests: TestResult;
|
|
139
|
+
performanceTests: TestResult;
|
|
140
|
+
edgeCaseTests: TestResult;
|
|
141
|
+
validationTests: TestResult;
|
|
142
|
+
startTime: Date;
|
|
143
|
+
endTime: Date;
|
|
144
|
+
totalDuration: number;
|
|
145
|
+
overallSummary: {
|
|
146
|
+
passed: number;
|
|
147
|
+
failed: number;
|
|
148
|
+
warnings: number;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=SoapTestSuite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SoapTestSuite.d.ts","sourceRoot":"","sources":["../../src/__tests__/SoapTestSuite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,572 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SoapTestSuite = exports.SoapDataValidator = exports.SoapPerformanceTester = exports.SoapTestDataGenerator = void 0;
|
|
7
|
+
const formDataRequests_1 = __importDefault(require("../formDataRequests"));
|
|
8
|
+
const diameterRequests_1 = __importDefault(require("../diameterRequests"));
|
|
9
|
+
const traceRequests_1 = __importDefault(require("../traceRequests"));
|
|
10
|
+
const SoapError_1 = require("../SoapError");
|
|
11
|
+
/**
|
|
12
|
+
* Mock Data Generator for SOAP Test Services
|
|
13
|
+
* Provides realistic test data for comprehensive testing scenarios
|
|
14
|
+
*/
|
|
15
|
+
class SoapTestDataGenerator {
|
|
16
|
+
/**
|
|
17
|
+
* Generate mock diameter request with configurable parameters
|
|
18
|
+
*/
|
|
19
|
+
static createMockDiameterRequest(overrides) {
|
|
20
|
+
const defaultRequest = {
|
|
21
|
+
orderCode: 'TEST_ORDER_001',
|
|
22
|
+
bkWunsch: 65,
|
|
23
|
+
einschleifAuftrag: true,
|
|
24
|
+
left: this.createMockSide('LEFT'),
|
|
25
|
+
right: this.createMockSide('RIGHT'),
|
|
26
|
+
};
|
|
27
|
+
return { ...defaultRequest, ...overrides };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Generate mock side data
|
|
31
|
+
*/
|
|
32
|
+
static createMockSide(identifier) {
|
|
33
|
+
return {
|
|
34
|
+
mdmKz: `MDM_${identifier}`,
|
|
35
|
+
fassung: {
|
|
36
|
+
formRadii: '24242481254226052669272027492742268325692427228721582041193818491771170016381583153514921456142313951371134913331318130713001297129512961301130813191332134813681391141914501487152915781632169317611838192620262139226524022545265827142725271126882669265126422636263626392641264126392625259225132391226721542050195518701794172616661611156215181479144614151389136713471330131613061299129412931295130013061315132613411359137914031430145914931530157116171665171617701826188219381991203920792117215321912232227523202370',
|
|
37
|
+
sl: 52.8,
|
|
38
|
+
sh: 25.9,
|
|
39
|
+
bw: 20.39,
|
|
40
|
+
vn: 1.0,
|
|
41
|
+
fsw: 7.7,
|
|
42
|
+
groove: {
|
|
43
|
+
edgeThicknessMin: 0.5,
|
|
44
|
+
width1: 1.5,
|
|
45
|
+
depth1: 1.5,
|
|
46
|
+
fromAngle1: 0,
|
|
47
|
+
toAngle1: 0,
|
|
48
|
+
},
|
|
49
|
+
facPos: 17,
|
|
50
|
+
facRef: 18,
|
|
51
|
+
},
|
|
52
|
+
wirkung: {
|
|
53
|
+
sphZylAch: { sph: -2.5, zyl: -1.0, ach: 90 },
|
|
54
|
+
add: 2.0,
|
|
55
|
+
prisma1: { prisma: 0.5, basis: 180 },
|
|
56
|
+
prisma2: { prisma: 0, basis: 0 },
|
|
57
|
+
},
|
|
58
|
+
zentrierung: {
|
|
59
|
+
zentrHor: 32,
|
|
60
|
+
zentrVerfahrenHor: 'STANDARDZENTIERUNG',
|
|
61
|
+
zentrVer: 18,
|
|
62
|
+
zentrVerfahrenVer: 'STANDARDZENTIERUNG',
|
|
63
|
+
zentrierKorrBeruecksichtigtHor: true,
|
|
64
|
+
zentrierKorrBeruecksichtigtVer: true,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Generate mock REST request
|
|
70
|
+
*/
|
|
71
|
+
static createMockRESTRequest(overrides) {
|
|
72
|
+
const defaultRequest = {
|
|
73
|
+
auftragId: 'TEST_AUFTRAG_001',
|
|
74
|
+
externeAuftragId: 'EXT_TEST_001',
|
|
75
|
+
language: 'de',
|
|
76
|
+
stempelGravurPkte: 'ALLESTEMPEL',
|
|
77
|
+
eingabeDurchmesser: {
|
|
78
|
+
links: {
|
|
79
|
+
orderProdukt: 'TEST_IOFK',
|
|
80
|
+
mdmkz: 'J',
|
|
81
|
+
fassung: {
|
|
82
|
+
radien: '25952626266026982735276927992820283228302814278727492703265025952540248624362388234323032267223622092185216421482135212621222122212521332144216021812204223422662305234923972451251125762646271927922864292929742999300029822949290428532804276027192679264426122584256025392522250824982491248824872488249224942493248724732455243124032372233723042274224522202198217821642152214321382135213521372141214921592171218822082229225222772302233023542379240024182434244624552459246324662468247224762480248724962509252525452568',
|
|
83
|
+
sl: 53.7,
|
|
84
|
+
sh: 42.8,
|
|
85
|
+
bw: 18.0,
|
|
86
|
+
vn: 6.0,
|
|
87
|
+
fsw: 10.0,
|
|
88
|
+
},
|
|
89
|
+
wirkung: {
|
|
90
|
+
sphZylAchFerne: {
|
|
91
|
+
sph: 2.0,
|
|
92
|
+
zyl: 1.0,
|
|
93
|
+
ach: 80.0,
|
|
94
|
+
},
|
|
95
|
+
add: 1.0,
|
|
96
|
+
prisma1: {
|
|
97
|
+
prisma: 2.0,
|
|
98
|
+
basis: 30.0,
|
|
99
|
+
},
|
|
100
|
+
prisma2: {
|
|
101
|
+
prisma: 1.0,
|
|
102
|
+
basis: 140.0,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
zentrierung: {
|
|
106
|
+
zentrHor: 35.0,
|
|
107
|
+
zentrVerfahrenHor: 'P',
|
|
108
|
+
zentrVer: 26.0,
|
|
109
|
+
zentrVerfahrenVer: 'y',
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
rechts: {
|
|
113
|
+
orderProdukt: 'TEST_IOFK',
|
|
114
|
+
mdmkz: 'J',
|
|
115
|
+
fassung: {
|
|
116
|
+
radien: '25952626266026982735276927992820283228302814278727492703265025952540248624362388234323032267223622092185216421482135212621222122212521332144216021812204223422662305234923972451251125762646271927922864292929742999300029822949290428532804276027192679264426122584256025392522250824982491248824872488249224942493248724732455243124032372233723042274224522202198217821642152214321382135213521372141214921592171218822082229225222772302233023542379240024182434244624552459246324662468247224762480248724962509252525452568',
|
|
117
|
+
sl: 53.7,
|
|
118
|
+
sh: 42.8,
|
|
119
|
+
bw: 18.0,
|
|
120
|
+
vn: 6.0,
|
|
121
|
+
fsw: 10.0,
|
|
122
|
+
},
|
|
123
|
+
wirkung: {
|
|
124
|
+
sphZylAchFerne: {
|
|
125
|
+
sph: 2.0,
|
|
126
|
+
zyl: 1.0,
|
|
127
|
+
ach: 10.0,
|
|
128
|
+
},
|
|
129
|
+
add: 1.0,
|
|
130
|
+
prisma1: {
|
|
131
|
+
prisma: 2.0,
|
|
132
|
+
basis: 30.0,
|
|
133
|
+
},
|
|
134
|
+
prisma2: {
|
|
135
|
+
prisma: 1.0,
|
|
136
|
+
basis: 140.0,
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
zentrierung: {
|
|
140
|
+
zentrHor: 36.0,
|
|
141
|
+
zentrVerfahrenHor: 'P',
|
|
142
|
+
zentrVer: 26.0,
|
|
143
|
+
zentrVerfahrenVer: 'y',
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
bkAngleich: true,
|
|
148
|
+
prismenAufteilen: true,
|
|
149
|
+
};
|
|
150
|
+
return { ...defaultRequest, ...overrides };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Generate edge case test data
|
|
154
|
+
*/
|
|
155
|
+
static createEdgeCaseData() {
|
|
156
|
+
return {
|
|
157
|
+
// Boundary values for bkWunsch
|
|
158
|
+
bkWunschMin: 0,
|
|
159
|
+
bkWunschMax: 100,
|
|
160
|
+
bkWunschInvalid: [-1, 101, 999],
|
|
161
|
+
// Invalid order codes
|
|
162
|
+
invalidOrderCodes: [
|
|
163
|
+
'',
|
|
164
|
+
null,
|
|
165
|
+
undefined,
|
|
166
|
+
'TOOLONG_ORDER_CODE_12345678901234567890',
|
|
167
|
+
],
|
|
168
|
+
// Invalid language codes
|
|
169
|
+
invalidLanguages: ['XX', 'invalid', '', null, undefined],
|
|
170
|
+
// Extreme optical values
|
|
171
|
+
extremeOpticalValues: {
|
|
172
|
+
sph: [-20, 20, 0.01, -0.01],
|
|
173
|
+
zyl: [-10, 10, 0.25, -0.25],
|
|
174
|
+
ach: [0, 180, 359, -1, 181],
|
|
175
|
+
add: [0, 5, 10, -1],
|
|
176
|
+
},
|
|
177
|
+
// Invalid centering values
|
|
178
|
+
invalidCentering: {
|
|
179
|
+
zentrHor: [-100, 100, 0.1, 'invalid'],
|
|
180
|
+
zentrVer: [-100, 100, 0.1, 'invalid'],
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.SoapTestDataGenerator = SoapTestDataGenerator;
|
|
186
|
+
/**
|
|
187
|
+
* Performance Testing Utilities
|
|
188
|
+
*/
|
|
189
|
+
class SoapPerformanceTester {
|
|
190
|
+
static async measureFunction(name, fn, iterations = 5) {
|
|
191
|
+
const times = [];
|
|
192
|
+
let result;
|
|
193
|
+
// Warmup
|
|
194
|
+
await fn();
|
|
195
|
+
for (let i = 0; i < iterations; i++) {
|
|
196
|
+
const start = performance.now();
|
|
197
|
+
result = await fn();
|
|
198
|
+
const end = performance.now();
|
|
199
|
+
times.push(end - start);
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
name,
|
|
203
|
+
iterations,
|
|
204
|
+
times,
|
|
205
|
+
averageTime: times.reduce((a, b) => a + b) / times.length,
|
|
206
|
+
minTime: Math.min(...times),
|
|
207
|
+
maxTime: Math.max(...times),
|
|
208
|
+
medianTime: times.sort()[Math.floor(times.length / 2)],
|
|
209
|
+
totalTime: times.reduce((a, b) => a + b),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
static async measureConcurrentRequests(name, fn, concurrency = 10) {
|
|
213
|
+
const startTime = performance.now();
|
|
214
|
+
const promises = Array(concurrency)
|
|
215
|
+
.fill(null)
|
|
216
|
+
.map(() => fn());
|
|
217
|
+
const results = await Promise.allSettled(promises);
|
|
218
|
+
const endTime = performance.now();
|
|
219
|
+
const successful = results.filter((r) => r.status === 'fulfilled').length;
|
|
220
|
+
const failed = results.filter((r) => r.status === 'rejected').length;
|
|
221
|
+
return {
|
|
222
|
+
name,
|
|
223
|
+
concurrency,
|
|
224
|
+
successful,
|
|
225
|
+
failed,
|
|
226
|
+
totalTime: endTime - startTime,
|
|
227
|
+
requestsPerSecond: successful / ((endTime - startTime) / 1000),
|
|
228
|
+
successRate: (successful / concurrency) * 100,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.SoapPerformanceTester = SoapPerformanceTester;
|
|
233
|
+
SoapPerformanceTester.measurements = [];
|
|
234
|
+
/**
|
|
235
|
+
* Data Validation Utilities
|
|
236
|
+
*/
|
|
237
|
+
class SoapDataValidator {
|
|
238
|
+
/**
|
|
239
|
+
* Validate TDiameterRequest structure
|
|
240
|
+
*/
|
|
241
|
+
static validateDiameterRequest(request) {
|
|
242
|
+
const errors = [];
|
|
243
|
+
const warnings = [];
|
|
244
|
+
if (!request) {
|
|
245
|
+
errors.push('Request is null or undefined');
|
|
246
|
+
return { isValid: false, errors, warnings };
|
|
247
|
+
}
|
|
248
|
+
// Required fields
|
|
249
|
+
if (!request.orderCode || typeof request.orderCode !== 'string') {
|
|
250
|
+
errors.push('orderCode is required and must be a string');
|
|
251
|
+
}
|
|
252
|
+
if (typeof request.bkWunsch !== 'number') {
|
|
253
|
+
errors.push('bkWunsch is required and must be a number');
|
|
254
|
+
}
|
|
255
|
+
else if (request.bkWunsch < 0 || request.bkWunsch > 100) {
|
|
256
|
+
warnings.push('bkWunsch should be between 0 and 100');
|
|
257
|
+
}
|
|
258
|
+
if (typeof request.einschleifAuftrag !== 'boolean') {
|
|
259
|
+
errors.push('einschleifAuftrag is required and must be a boolean');
|
|
260
|
+
}
|
|
261
|
+
// Validate sides
|
|
262
|
+
if (!request.left) {
|
|
263
|
+
errors.push('left side is required');
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
const leftValidation = this.validateSide(request.left, 'left');
|
|
267
|
+
errors.push(...leftValidation.errors);
|
|
268
|
+
warnings.push(...leftValidation.warnings);
|
|
269
|
+
}
|
|
270
|
+
if (!request.right) {
|
|
271
|
+
errors.push('right side is required');
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
const rightValidation = this.validateSide(request.right, 'right');
|
|
275
|
+
errors.push(...rightValidation.errors);
|
|
276
|
+
warnings.push(...rightValidation.warnings);
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
isValid: errors.length === 0,
|
|
280
|
+
errors,
|
|
281
|
+
warnings,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Validate TSide structure
|
|
286
|
+
*/
|
|
287
|
+
static validateSide(side, sideName) {
|
|
288
|
+
const errors = [];
|
|
289
|
+
const warnings = [];
|
|
290
|
+
if (!side.mdmKz || typeof side.mdmKz !== 'string') {
|
|
291
|
+
errors.push(`${sideName}.mdmKz is required and must be a string`);
|
|
292
|
+
}
|
|
293
|
+
if (!side.fassung) {
|
|
294
|
+
errors.push(`${sideName}.fassung is required`);
|
|
295
|
+
}
|
|
296
|
+
if (!side.wirkung) {
|
|
297
|
+
errors.push(`${sideName}.wirkung is required`);
|
|
298
|
+
}
|
|
299
|
+
if (!side.zentrierung) {
|
|
300
|
+
errors.push(`${sideName}.zentrierung is required`);
|
|
301
|
+
}
|
|
302
|
+
return {
|
|
303
|
+
isValid: errors.length === 0,
|
|
304
|
+
errors,
|
|
305
|
+
warnings,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
exports.SoapDataValidator = SoapDataValidator;
|
|
310
|
+
/**
|
|
311
|
+
* Test Suite Orchestrator
|
|
312
|
+
*/
|
|
313
|
+
class SoapTestSuite {
|
|
314
|
+
constructor() {
|
|
315
|
+
this.results = [];
|
|
316
|
+
this.formDataRequests = new formDataRequests_1.default();
|
|
317
|
+
this.diameterRequests = new diameterRequests_1.default();
|
|
318
|
+
this.traceRequests = new traceRequests_1.default();
|
|
319
|
+
}
|
|
320
|
+
async runComprehensiveTests() {
|
|
321
|
+
const startTime = performance.now();
|
|
322
|
+
console.log('š§Ŗ Starting Comprehensive SOAP Service Tests...');
|
|
323
|
+
const results = {
|
|
324
|
+
formDataTests: await this.runFormDataTests(),
|
|
325
|
+
diameterTests: await this.runDiameterTests(),
|
|
326
|
+
traceTests: await this.runTraceTests(),
|
|
327
|
+
performanceTests: await this.runPerformanceTests(),
|
|
328
|
+
edgeCaseTests: await this.runEdgeCaseTests(),
|
|
329
|
+
validationTests: await this.runValidationTests(),
|
|
330
|
+
startTime: new Date(),
|
|
331
|
+
endTime: new Date(),
|
|
332
|
+
totalDuration: 0,
|
|
333
|
+
overallSummary: { passed: 0, failed: 0, warnings: 0 },
|
|
334
|
+
};
|
|
335
|
+
const endTime = performance.now();
|
|
336
|
+
results.totalDuration = endTime - startTime;
|
|
337
|
+
results.endTime = new Date();
|
|
338
|
+
// Calculate overall summary
|
|
339
|
+
[
|
|
340
|
+
results.formDataTests,
|
|
341
|
+
results.diameterTests,
|
|
342
|
+
results.traceTests,
|
|
343
|
+
results.performanceTests,
|
|
344
|
+
results.edgeCaseTests,
|
|
345
|
+
results.validationTests,
|
|
346
|
+
].forEach((testResult) => {
|
|
347
|
+
if (testResult) {
|
|
348
|
+
results.overallSummary.passed += testResult.passed || 0;
|
|
349
|
+
results.overallSummary.failed += testResult.failed || 0;
|
|
350
|
+
results.overallSummary.warnings += testResult.warnings || 0;
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
console.log('ā
Comprehensive testing completed!');
|
|
354
|
+
console.log(`š Results: ${results.overallSummary.passed} passed, ${results.overallSummary.failed} failed, ${results.overallSummary.warnings} warnings`);
|
|
355
|
+
return results;
|
|
356
|
+
}
|
|
357
|
+
async runFormDataTests() {
|
|
358
|
+
console.log('š Testing FormData Services...');
|
|
359
|
+
const tests = [
|
|
360
|
+
() => this.testBrandRetrieval(),
|
|
361
|
+
() => this.testMultiLanguageSupport(),
|
|
362
|
+
() => this.testModelRetrieval(),
|
|
363
|
+
() => this.testFormKeyRequests(),
|
|
364
|
+
];
|
|
365
|
+
return await this.executeTestGroup('FormData Services', tests);
|
|
366
|
+
}
|
|
367
|
+
async runDiameterTests() {
|
|
368
|
+
console.log('š Testing Diameter Services...');
|
|
369
|
+
const tests = [
|
|
370
|
+
() => this.testDiameterCalculation(),
|
|
371
|
+
() => this.testRESTDiameterAPI(),
|
|
372
|
+
() => this.testStempelGravurFeatures(),
|
|
373
|
+
() => this.testDiameterErrorHandling(),
|
|
374
|
+
];
|
|
375
|
+
return await this.executeTestGroup('Diameter Services', tests);
|
|
376
|
+
}
|
|
377
|
+
async runTraceTests() {
|
|
378
|
+
console.log('š Testing Trace Services...');
|
|
379
|
+
const tests = [
|
|
380
|
+
() => this.testTraceLogging(),
|
|
381
|
+
() => this.testDiameterCalculationLogging(),
|
|
382
|
+
];
|
|
383
|
+
return await this.executeTestGroup('Trace Services', tests);
|
|
384
|
+
}
|
|
385
|
+
async runPerformanceTests() {
|
|
386
|
+
console.log('ā” Running Performance Tests...');
|
|
387
|
+
const tests = [
|
|
388
|
+
() => this.testBrandRetrievalPerformance(),
|
|
389
|
+
() => this.testDiameterCalculationPerformance(),
|
|
390
|
+
() => this.testConcurrentRequests(),
|
|
391
|
+
];
|
|
392
|
+
return await this.executeTestGroup('Performance Tests', tests);
|
|
393
|
+
}
|
|
394
|
+
async runEdgeCaseTests() {
|
|
395
|
+
console.log('š¬ Testing Edge Cases...');
|
|
396
|
+
const tests = [
|
|
397
|
+
() => this.testBoundaryValues(),
|
|
398
|
+
() => this.testInvalidInputs(),
|
|
399
|
+
() => this.testExtremeOpticalValues(),
|
|
400
|
+
];
|
|
401
|
+
return await this.executeTestGroup('Edge Case Tests', tests);
|
|
402
|
+
}
|
|
403
|
+
async runValidationTests() {
|
|
404
|
+
console.log('ā
Running Data Validation Tests...');
|
|
405
|
+
const tests = [
|
|
406
|
+
() => this.testDataSchemaValidation(),
|
|
407
|
+
() => this.testTypeValidation(),
|
|
408
|
+
() => this.testRequiredFieldValidation(),
|
|
409
|
+
];
|
|
410
|
+
return await this.executeTestGroup('Data Validation Tests', tests);
|
|
411
|
+
}
|
|
412
|
+
async executeTestGroup(groupName, tests) {
|
|
413
|
+
let passed = 0;
|
|
414
|
+
let failed = 0;
|
|
415
|
+
let warnings = 0;
|
|
416
|
+
const details = [];
|
|
417
|
+
for (const test of tests) {
|
|
418
|
+
try {
|
|
419
|
+
const result = await test();
|
|
420
|
+
if (result) {
|
|
421
|
+
passed++;
|
|
422
|
+
details.push(`ā
Test passed`);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
warnings++;
|
|
426
|
+
details.push(`ā ļø Test completed with warnings`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
catch (error) {
|
|
430
|
+
failed++;
|
|
431
|
+
details.push(`ā Test failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
return { groupName, passed, failed, warnings, details };
|
|
435
|
+
}
|
|
436
|
+
// Individual test implementations
|
|
437
|
+
async testBrandRetrieval() {
|
|
438
|
+
const brands = await this.formDataRequests.easyRequestBrands('DE');
|
|
439
|
+
return brands && brands.length > 0;
|
|
440
|
+
}
|
|
441
|
+
async testMultiLanguageSupport() {
|
|
442
|
+
const languages = ['DE', 'EN', 'IT'];
|
|
443
|
+
const results = await Promise.all(languages.map((lang) => this.formDataRequests.easyRequestBrands(lang)));
|
|
444
|
+
return results.every((result) => result && result.length > 0);
|
|
445
|
+
}
|
|
446
|
+
async testModelRetrieval() {
|
|
447
|
+
const models = await this.formDataRequests.easyRequestModels('BOL');
|
|
448
|
+
return models && models.length > 0;
|
|
449
|
+
}
|
|
450
|
+
async testFormKeyRequests() {
|
|
451
|
+
const formkey = await this.formDataRequests.easyRequestFormkey('BOL0000000000000001196466120000');
|
|
452
|
+
return formkey && formkey.Formkey === 'BOL0000000000000001196466120000';
|
|
453
|
+
}
|
|
454
|
+
async testDiameterCalculation() {
|
|
455
|
+
const mockRequest = SoapTestDataGenerator.createMockDiameterRequest();
|
|
456
|
+
const result = await this.diameterRequests.easyRequestDiameter(mockRequest);
|
|
457
|
+
return !!(result && result.Left && result.Right);
|
|
458
|
+
}
|
|
459
|
+
async testRESTDiameterAPI() {
|
|
460
|
+
const mockRequest = SoapTestDataGenerator.createMockRESTRequest();
|
|
461
|
+
const diameter = await this.diameterRequests.easyRequestSimpleDiameter(mockRequest);
|
|
462
|
+
return !!(diameter && diameter.ausgabeDurchmesser);
|
|
463
|
+
}
|
|
464
|
+
async testStempelGravurFeatures() {
|
|
465
|
+
const mockRequest = SoapTestDataGenerator.createMockRESTRequest({
|
|
466
|
+
stempelGravurPkte: 'ALLESTEMPEL',
|
|
467
|
+
});
|
|
468
|
+
const result = await this.diameterRequests.easyRequestSimpleDiameter(mockRequest);
|
|
469
|
+
return !!(result && result.ausgabeDurchmesser?.links?.stempelGravuren);
|
|
470
|
+
}
|
|
471
|
+
async testDiameterErrorHandling() {
|
|
472
|
+
try {
|
|
473
|
+
// Test with invalid data that should trigger an error
|
|
474
|
+
await this.diameterRequests.easyRequestDiameter(null);
|
|
475
|
+
return false; // Should have thrown an error
|
|
476
|
+
}
|
|
477
|
+
catch (error) {
|
|
478
|
+
return error instanceof SoapError_1.SoapError || error instanceof Error;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
async testTraceLogging() {
|
|
482
|
+
const result = await this.traceRequests.easyLog('Test message from comprehensive test suite');
|
|
483
|
+
return result === 'message sent';
|
|
484
|
+
}
|
|
485
|
+
async testDiameterCalculationLogging() {
|
|
486
|
+
const result = await this.traceRequests.easyDiameterCalcLog('Test diameter calculation log', 'TEST_LENS_CODE');
|
|
487
|
+
return typeof result === 'string';
|
|
488
|
+
}
|
|
489
|
+
async testBrandRetrievalPerformance() {
|
|
490
|
+
const metrics = await SoapPerformanceTester.measureFunction('Brand Retrieval', () => this.formDataRequests.easyRequestBrands('DE'), 3);
|
|
491
|
+
// Performance should be under 10 seconds on average
|
|
492
|
+
return metrics.averageTime < 10000;
|
|
493
|
+
}
|
|
494
|
+
async testDiameterCalculationPerformance() {
|
|
495
|
+
const mockRequest = SoapTestDataGenerator.createMockDiameterRequest();
|
|
496
|
+
const metrics = await SoapPerformanceTester.measureFunction('Diameter Calculation', () => this.diameterRequests.easyRequestDiameter(mockRequest), 3);
|
|
497
|
+
return metrics.averageTime < 15000; // 15 second threshold
|
|
498
|
+
}
|
|
499
|
+
async testConcurrentRequests() {
|
|
500
|
+
const metrics = await SoapPerformanceTester.measureConcurrentRequests('Concurrent Brand Requests', () => this.formDataRequests.easyRequestBrands('DE'), 5);
|
|
501
|
+
return metrics.successRate > 80; // 80% success rate threshold
|
|
502
|
+
}
|
|
503
|
+
async testBoundaryValues() {
|
|
504
|
+
const edgeData = SoapTestDataGenerator.createEdgeCaseData();
|
|
505
|
+
// Test boundary values for bkWunsch
|
|
506
|
+
const validBkWunschRequest = SoapTestDataGenerator.createMockDiameterRequest({
|
|
507
|
+
bkWunsch: edgeData.bkWunschMin,
|
|
508
|
+
});
|
|
509
|
+
try {
|
|
510
|
+
await this.diameterRequests.easyRequestDiameter(validBkWunschRequest);
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
catch (error) {
|
|
514
|
+
return false;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
async testInvalidInputs() {
|
|
518
|
+
const edgeData = SoapTestDataGenerator.createEdgeCaseData();
|
|
519
|
+
try {
|
|
520
|
+
// Test with invalid language
|
|
521
|
+
await this.formDataRequests.easyRequestBrands(edgeData.invalidLanguages[0]);
|
|
522
|
+
return false; // Should have failed
|
|
523
|
+
}
|
|
524
|
+
catch (error) {
|
|
525
|
+
return true; // Expected to fail
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
async testExtremeOpticalValues() {
|
|
529
|
+
const extremeRequest = SoapTestDataGenerator.createMockDiameterRequest({
|
|
530
|
+
left: {
|
|
531
|
+
...SoapTestDataGenerator.createMockSide('LEFT'),
|
|
532
|
+
wirkung: {
|
|
533
|
+
...SoapTestDataGenerator.createMockSide('LEFT').wirkung,
|
|
534
|
+
sphZylAch: { sph: 20, zyl: 10, ach: 180 }, // Extreme but valid values
|
|
535
|
+
},
|
|
536
|
+
},
|
|
537
|
+
});
|
|
538
|
+
try {
|
|
539
|
+
await this.diameterRequests.easyRequestDiameter(extremeRequest);
|
|
540
|
+
return true;
|
|
541
|
+
}
|
|
542
|
+
catch (error) {
|
|
543
|
+
return error instanceof SoapError_1.SoapError; // Expected SOAP error for extreme values
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
async testDataSchemaValidation() {
|
|
547
|
+
const mockRequest = SoapTestDataGenerator.createMockDiameterRequest();
|
|
548
|
+
const validation = SoapDataValidator.validateDiameterRequest(mockRequest);
|
|
549
|
+
return validation.isValid;
|
|
550
|
+
}
|
|
551
|
+
async testTypeValidation() {
|
|
552
|
+
const invalidRequest = {
|
|
553
|
+
orderCode: 123, // Should be string
|
|
554
|
+
bkWunsch: 'invalid', // Should be number
|
|
555
|
+
einschleifAuftrag: 'true', // Should be boolean
|
|
556
|
+
left: null,
|
|
557
|
+
right: null,
|
|
558
|
+
};
|
|
559
|
+
const validation = SoapDataValidator.validateDiameterRequest(invalidRequest);
|
|
560
|
+
return !validation.isValid && validation.errors.length > 0;
|
|
561
|
+
}
|
|
562
|
+
async testRequiredFieldValidation() {
|
|
563
|
+
const incompleteRequest = {
|
|
564
|
+
orderCode: 'TEST',
|
|
565
|
+
// Missing required fields
|
|
566
|
+
};
|
|
567
|
+
const validation = SoapDataValidator.validateDiameterRequest(incompleteRequest);
|
|
568
|
+
return !validation.isValid && validation.errors.length > 0;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
exports.SoapTestSuite = SoapTestSuite;
|
|
572
|
+
//# sourceMappingURL=SoapTestSuite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SoapTestSuite.js","sourceRoot":"","sources":["../../src/__tests__/SoapTestSuite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* SOAP Test Agent - Automated Test Execution Script
|
|
4
|
+
*
|
|
5
|
+
* This script runs comprehensive testing for the Frame SOAP service library
|
|
6
|
+
* and generates detailed reports of test results, performance metrics, and recommendations.
|
|
7
|
+
*/
|
|
8
|
+
import { ComprehensiveTestResults } from '../__tests__/SoapTestSuite';
|
|
9
|
+
declare class TestReportGenerator {
|
|
10
|
+
/**
|
|
11
|
+
* Generate a comprehensive HTML report
|
|
12
|
+
*/
|
|
13
|
+
static generateHTMLReport(results: ComprehensiveTestResults): string;
|
|
14
|
+
/**
|
|
15
|
+
* Generate HTML for individual test sections
|
|
16
|
+
*/
|
|
17
|
+
private static generateTestSectionHTML;
|
|
18
|
+
/**
|
|
19
|
+
* Generate recommendations based on test results
|
|
20
|
+
*/
|
|
21
|
+
private static generateRecommendations;
|
|
22
|
+
/**
|
|
23
|
+
* Generate a markdown report
|
|
24
|
+
*/
|
|
25
|
+
static generateMarkdownReport(results: ComprehensiveTestResults): string;
|
|
26
|
+
/**
|
|
27
|
+
* Generate markdown recommendations
|
|
28
|
+
*/
|
|
29
|
+
private static generateMarkdownRecommendations;
|
|
30
|
+
/**
|
|
31
|
+
* Generate JSON report for programmatic consumption
|
|
32
|
+
*/
|
|
33
|
+
static generateJSONReport(results: ComprehensiveTestResults): string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Main execution function
|
|
37
|
+
*/
|
|
38
|
+
declare function main(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Quick test function for development
|
|
41
|
+
*/
|
|
42
|
+
declare function quickTest(): Promise<void>;
|
|
43
|
+
export { TestReportGenerator, main, quickTest };
|
|
44
|
+
//# sourceMappingURL=test-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-agent.d.ts","sourceRoot":"","sources":["../../src/scripts/test-agent.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAEL,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AAIpC,cAAM,mBAAmB;IACvB;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;IAyFpE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAwCtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA6CtC;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;IA6DxE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAgC9C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;CAmCrE;AAED;;GAEG;AACH,iBAAe,IAAI,kBAiElB;AAED;;GAEG;AACH,iBAAe,SAAS,kBAcvB;AAyBD,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* SOAP Test Agent - Automated Test Execution Script
|
|
5
|
+
*
|
|
6
|
+
* This script runs comprehensive testing for the Frame SOAP service library
|
|
7
|
+
* and generates detailed reports of test results, performance metrics, and recommendations.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.TestReportGenerator = void 0;
|
|
11
|
+
exports.main = main;
|
|
12
|
+
exports.quickTest = quickTest;
|
|
13
|
+
const SoapTestSuite_1 = require("../__tests__/SoapTestSuite");
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
class TestReportGenerator {
|
|
17
|
+
/**
|
|
18
|
+
* Generate a comprehensive HTML report
|
|
19
|
+
*/
|
|
20
|
+
static generateHTMLReport(results) {
|
|
21
|
+
const passRate = ((results.overallSummary.passed /
|
|
22
|
+
(results.overallSummary.passed + results.overallSummary.failed)) *
|
|
23
|
+
100).toFixed(1);
|
|
24
|
+
return `
|
|
25
|
+
<!DOCTYPE html>
|
|
26
|
+
<html lang="en">
|
|
27
|
+
<head>
|
|
28
|
+
<meta charset="UTF-8">
|
|
29
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
30
|
+
<title>Frame SOAP Service Test Report</title>
|
|
31
|
+
<style>
|
|
32
|
+
body { font-family: Arial, sans-serif; margin: 20px; background-color: #f5f5f5; }
|
|
33
|
+
.container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
|
|
34
|
+
.header { text-align: center; margin-bottom: 30px; padding: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-radius: 8px; }
|
|
35
|
+
.summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin: 20px 0; }
|
|
36
|
+
.metric { background: #f8f9fa; padding: 15px; border-radius: 8px; text-align: center; border-left: 4px solid #007bff; }
|
|
37
|
+
.metric.success { border-left-color: #28a745; }
|
|
38
|
+
.metric.warning { border-left-color: #ffc107; }
|
|
39
|
+
.metric.error { border-left-color: #dc3545; }
|
|
40
|
+
.metric h3 { margin: 0; font-size: 24px; }
|
|
41
|
+
.metric p { margin: 5px 0 0 0; color: #666; }
|
|
42
|
+
.test-section { margin: 30px 0; padding: 20px; border: 1px solid #dee2e6; border-radius: 8px; }
|
|
43
|
+
.test-section h2 { color: #495057; border-bottom: 2px solid #e9ecef; padding-bottom: 10px; }
|
|
44
|
+
.test-details { margin: 15px 0; }
|
|
45
|
+
.test-result { padding: 10px; margin: 5px 0; border-radius: 4px; }
|
|
46
|
+
.test-result.passed { background-color: #d4edda; border-left: 4px solid #28a745; }
|
|
47
|
+
.test-result.failed { background-color: #f8d7da; border-left: 4px solid #dc3545; }
|
|
48
|
+
.test-result.warning { background-color: #fff3cd; border-left: 4px solid #ffc107; }
|
|
49
|
+
.recommendations { background: #e3f2fd; padding: 20px; border-radius: 8px; margin: 20px 0; }
|
|
50
|
+
.performance-chart { background: #f8f9fa; padding: 20px; border-radius: 8px; margin: 20px 0; }
|
|
51
|
+
.footer { text-align: center; margin-top: 30px; color: #666; font-size: 12px; }
|
|
52
|
+
.pass-rate { font-size: 36px; font-weight: bold; color: ${parseFloat(passRate) >= 90 ? '#28a745' : parseFloat(passRate) >= 70 ? '#ffc107' : '#dc3545'}; }
|
|
53
|
+
</style>
|
|
54
|
+
</head>
|
|
55
|
+
<body>
|
|
56
|
+
<div class="container">
|
|
57
|
+
<div class="header">
|
|
58
|
+
<h1>š§Ŗ Frame SOAP Service Test Report</h1>
|
|
59
|
+
<p>Comprehensive Testing Results for Frame SOAP Client Library</p>
|
|
60
|
+
<p>Generated on: ${results.endTime.toLocaleString()}</p>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<div class="summary">
|
|
64
|
+
<div class="metric success">
|
|
65
|
+
<h3>${results.overallSummary.passed}</h3>
|
|
66
|
+
<p>Tests Passed</p>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="metric error">
|
|
69
|
+
<h3>${results.overallSummary.failed}</h3>
|
|
70
|
+
<p>Tests Failed</p>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="metric warning">
|
|
73
|
+
<h3>${results.overallSummary.warnings}</h3>
|
|
74
|
+
<p>Warnings</p>
|
|
75
|
+
</div>
|
|
76
|
+
<div class="metric">
|
|
77
|
+
<h3 class="pass-rate">${passRate}%</h3>
|
|
78
|
+
<p>Pass Rate</p>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="metric">
|
|
81
|
+
<h3>${(results.totalDuration / 1000).toFixed(1)}s</h3>
|
|
82
|
+
<p>Total Duration</p>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
${this.generateTestSectionHTML('š FormData Services', results.formDataTests)}
|
|
87
|
+
${this.generateTestSectionHTML('š Diameter Services', results.diameterTests)}
|
|
88
|
+
${this.generateTestSectionHTML('š Trace Services', results.traceTests)}
|
|
89
|
+
${this.generateTestSectionHTML('ā” Performance Tests', results.performanceTests)}
|
|
90
|
+
${this.generateTestSectionHTML('š¬ Edge Case Tests', results.edgeCaseTests)}
|
|
91
|
+
${this.generateTestSectionHTML('ā
Data Validation Tests', results.validationTests)}
|
|
92
|
+
|
|
93
|
+
<div class="recommendations">
|
|
94
|
+
<h2>š Recommendations</h2>
|
|
95
|
+
${this.generateRecommendations(results)}
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<div class="footer">
|
|
99
|
+
<p>Report generated by SOAP Test Agent | Frame SOAP Service Library v1.2.4</p>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</body>
|
|
103
|
+
</html>`;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Generate HTML for individual test sections
|
|
107
|
+
*/
|
|
108
|
+
static generateTestSectionHTML(title, testResult) {
|
|
109
|
+
if (!testResult)
|
|
110
|
+
return '';
|
|
111
|
+
return `
|
|
112
|
+
<div class="test-section">
|
|
113
|
+
<h2>${title}</h2>
|
|
114
|
+
<div class="summary">
|
|
115
|
+
<div class="metric success">
|
|
116
|
+
<h3>${testResult.passed || 0}</h3>
|
|
117
|
+
<p>Passed</p>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="metric error">
|
|
120
|
+
<h3>${testResult.failed || 0}</h3>
|
|
121
|
+
<p>Failed</p>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="metric warning">
|
|
124
|
+
<h3>${testResult.warnings || 0}</h3>
|
|
125
|
+
<p>Warnings</p>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
<div class="test-details">
|
|
129
|
+
${testResult.details
|
|
130
|
+
?.map((detail, index) => {
|
|
131
|
+
const className = detail.includes('ā
')
|
|
132
|
+
? 'passed'
|
|
133
|
+
: detail.includes('ā')
|
|
134
|
+
? 'failed'
|
|
135
|
+
: 'warning';
|
|
136
|
+
return `<div class="test-result ${className}">${detail}</div>`;
|
|
137
|
+
})
|
|
138
|
+
.join('') || ''}
|
|
139
|
+
</div>
|
|
140
|
+
</div>`;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Generate recommendations based on test results
|
|
144
|
+
*/
|
|
145
|
+
static generateRecommendations(results) {
|
|
146
|
+
const recommendations = [];
|
|
147
|
+
if (results.overallSummary.failed > 0) {
|
|
148
|
+
recommendations.push('š§ <strong>Critical Issues Found:</strong> Address failed tests immediately to ensure service reliability.');
|
|
149
|
+
}
|
|
150
|
+
if (results.overallSummary.warnings > 5) {
|
|
151
|
+
recommendations.push('ā ļø <strong>Multiple Warnings:</strong> Review warning conditions to prevent potential issues.');
|
|
152
|
+
}
|
|
153
|
+
if (results.totalDuration > 120000) {
|
|
154
|
+
// More than 2 minutes
|
|
155
|
+
recommendations.push('š <strong>Performance Optimization:</strong> Consider optimizing slow tests or services for better performance.');
|
|
156
|
+
}
|
|
157
|
+
if (results.performanceTests.failed > 0) {
|
|
158
|
+
recommendations.push('ā” <strong>Performance Issues:</strong> Review and optimize slow-performing services.');
|
|
159
|
+
}
|
|
160
|
+
if (results.edgeCaseTests.failed > 0) {
|
|
161
|
+
recommendations.push('š¬ <strong>Edge Case Failures:</strong> Improve error handling and input validation.');
|
|
162
|
+
}
|
|
163
|
+
if (recommendations.length === 0) {
|
|
164
|
+
recommendations.push('š <strong>Excellent Results:</strong> All tests are performing well. Continue monitoring and maintain current quality standards.');
|
|
165
|
+
}
|
|
166
|
+
return recommendations.map((rec) => `<p>${rec}</p>`).join('');
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Generate a markdown report
|
|
170
|
+
*/
|
|
171
|
+
static generateMarkdownReport(results) {
|
|
172
|
+
const passRate = ((results.overallSummary.passed /
|
|
173
|
+
(results.overallSummary.passed + results.overallSummary.failed)) *
|
|
174
|
+
100).toFixed(1);
|
|
175
|
+
return `# Frame SOAP Service Test Report
|
|
176
|
+
|
|
177
|
+
## Test Summary
|
|
178
|
+
|
|
179
|
+
- **Total Tests:** ${results.overallSummary.passed + results.overallSummary.failed}
|
|
180
|
+
- **Passed:** ${results.overallSummary.passed} ā
|
|
181
|
+
- **Failed:** ${results.overallSummary.failed} ā
|
|
182
|
+
- **Warnings:** ${results.overallSummary.warnings} ā ļø
|
|
183
|
+
- **Pass Rate:** ${passRate}%
|
|
184
|
+
- **Duration:** ${(results.totalDuration / 1000).toFixed(1)}s
|
|
185
|
+
- **Started:** ${results.startTime.toISOString()}
|
|
186
|
+
- **Completed:** ${results.endTime.toISOString()}
|
|
187
|
+
|
|
188
|
+
## Test Results by Category
|
|
189
|
+
|
|
190
|
+
### š FormData Services
|
|
191
|
+
- **Passed:** ${results.formDataTests.passed || 0}
|
|
192
|
+
- **Failed:** ${results.formDataTests.failed || 0}
|
|
193
|
+
- **Warnings:** ${results.formDataTests.warnings || 0}
|
|
194
|
+
|
|
195
|
+
### š Diameter Services
|
|
196
|
+
- **Passed:** ${results.diameterTests.passed || 0}
|
|
197
|
+
- **Failed:** ${results.diameterTests.failed || 0}
|
|
198
|
+
- **Warnings:** ${results.diameterTests.warnings || 0}
|
|
199
|
+
|
|
200
|
+
### š Trace Services
|
|
201
|
+
- **Passed:** ${results.traceTests.passed || 0}
|
|
202
|
+
- **Failed:** ${results.traceTests.failed || 0}
|
|
203
|
+
- **Warnings:** ${results.traceTests.warnings || 0}
|
|
204
|
+
|
|
205
|
+
### ā” Performance Tests
|
|
206
|
+
- **Passed:** ${results.performanceTests.passed || 0}
|
|
207
|
+
- **Failed:** ${results.performanceTests.failed || 0}
|
|
208
|
+
- **Warnings:** ${results.performanceTests.warnings || 0}
|
|
209
|
+
|
|
210
|
+
### š¬ Edge Case Tests
|
|
211
|
+
- **Passed:** ${results.edgeCaseTests.passed || 0}
|
|
212
|
+
- **Failed:** ${results.edgeCaseTests.failed || 0}
|
|
213
|
+
- **Warnings:** ${results.edgeCaseTests.warnings || 0}
|
|
214
|
+
|
|
215
|
+
### ā
Data Validation Tests
|
|
216
|
+
- **Passed:** ${results.validationTests.passed || 0}
|
|
217
|
+
- **Failed:** ${results.validationTests.failed || 0}
|
|
218
|
+
- **Warnings:** ${results.validationTests.warnings || 0}
|
|
219
|
+
|
|
220
|
+
## Recommendations
|
|
221
|
+
|
|
222
|
+
${this.generateMarkdownRecommendations(results)}
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
*Report generated by SOAP Test Agent - ${new Date().toISOString()}*
|
|
226
|
+
`;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Generate markdown recommendations
|
|
230
|
+
*/
|
|
231
|
+
static generateMarkdownRecommendations(results) {
|
|
232
|
+
const recommendations = [];
|
|
233
|
+
if (results.overallSummary.failed > 0) {
|
|
234
|
+
recommendations.push('- š§ **Critical Issues Found:** Address failed tests immediately');
|
|
235
|
+
}
|
|
236
|
+
if (results.overallSummary.warnings > 5) {
|
|
237
|
+
recommendations.push('- ā ļø **Multiple Warnings:** Review warning conditions');
|
|
238
|
+
}
|
|
239
|
+
if (results.totalDuration > 120000) {
|
|
240
|
+
recommendations.push('- š **Performance Optimization:** Consider optimizing slow tests');
|
|
241
|
+
}
|
|
242
|
+
if (recommendations.length === 0) {
|
|
243
|
+
recommendations.push('- š **Excellent Results:** All tests performing well');
|
|
244
|
+
}
|
|
245
|
+
return recommendations.join('\n');
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Generate JSON report for programmatic consumption
|
|
249
|
+
*/
|
|
250
|
+
static generateJSONReport(results) {
|
|
251
|
+
return JSON.stringify({
|
|
252
|
+
summary: {
|
|
253
|
+
totalTests: results.overallSummary.passed + results.overallSummary.failed,
|
|
254
|
+
passed: results.overallSummary.passed,
|
|
255
|
+
failed: results.overallSummary.failed,
|
|
256
|
+
warnings: results.overallSummary.warnings,
|
|
257
|
+
passRate: (results.overallSummary.passed /
|
|
258
|
+
(results.overallSummary.passed + results.overallSummary.failed)) *
|
|
259
|
+
100,
|
|
260
|
+
duration: results.totalDuration,
|
|
261
|
+
startTime: results.startTime.toISOString(),
|
|
262
|
+
endTime: results.endTime.toISOString(),
|
|
263
|
+
},
|
|
264
|
+
testCategories: {
|
|
265
|
+
formData: results.formDataTests,
|
|
266
|
+
diameter: results.diameterTests,
|
|
267
|
+
trace: results.traceTests,
|
|
268
|
+
performance: results.performanceTests,
|
|
269
|
+
edgeCase: results.edgeCaseTests,
|
|
270
|
+
validation: results.validationTests,
|
|
271
|
+
},
|
|
272
|
+
metadata: {
|
|
273
|
+
generatedAt: new Date().toISOString(),
|
|
274
|
+
generator: 'SOAP Test Agent',
|
|
275
|
+
version: '1.0.0',
|
|
276
|
+
},
|
|
277
|
+
}, null, 2);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
exports.TestReportGenerator = TestReportGenerator;
|
|
281
|
+
/**
|
|
282
|
+
* Main execution function
|
|
283
|
+
*/
|
|
284
|
+
async function main() {
|
|
285
|
+
console.log('š Starting SOAP Test Agent - Comprehensive Testing...\n');
|
|
286
|
+
try {
|
|
287
|
+
// Initialize test suite
|
|
288
|
+
const testSuite = new SoapTestSuite_1.SoapTestSuite();
|
|
289
|
+
// Run comprehensive tests
|
|
290
|
+
const results = await testSuite.runComprehensiveTests();
|
|
291
|
+
// Create reports directory
|
|
292
|
+
const reportsDir = (0, path_1.join)(process.cwd(), 'test-reports');
|
|
293
|
+
if (!(0, fs_1.existsSync)(reportsDir)) {
|
|
294
|
+
(0, fs_1.mkdirSync)(reportsDir, { recursive: true });
|
|
295
|
+
}
|
|
296
|
+
// Generate and save reports
|
|
297
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
298
|
+
// HTML Report
|
|
299
|
+
const htmlReport = TestReportGenerator.generateHTMLReport(results);
|
|
300
|
+
const htmlPath = (0, path_1.join)(reportsDir, `soap-test-report-${timestamp}.html`);
|
|
301
|
+
(0, fs_1.writeFileSync)(htmlPath, htmlReport);
|
|
302
|
+
console.log(`š HTML Report saved: ${htmlPath}`);
|
|
303
|
+
// Markdown Report
|
|
304
|
+
const markdownReport = TestReportGenerator.generateMarkdownReport(results);
|
|
305
|
+
const markdownPath = (0, path_1.join)(reportsDir, `soap-test-report-${timestamp}.md`);
|
|
306
|
+
(0, fs_1.writeFileSync)(markdownPath, markdownReport);
|
|
307
|
+
console.log(`š Markdown Report saved: ${markdownPath}`);
|
|
308
|
+
// JSON Report
|
|
309
|
+
const jsonReport = TestReportGenerator.generateJSONReport(results);
|
|
310
|
+
const jsonPath = (0, path_1.join)(reportsDir, `soap-test-report-${timestamp}.json`);
|
|
311
|
+
(0, fs_1.writeFileSync)(jsonPath, jsonReport);
|
|
312
|
+
console.log(`š JSON Report saved: ${jsonPath}`);
|
|
313
|
+
// Console Summary
|
|
314
|
+
console.log('\n' + '='.repeat(60));
|
|
315
|
+
console.log('š TEST EXECUTION SUMMARY');
|
|
316
|
+
console.log('='.repeat(60));
|
|
317
|
+
console.log(`ā
Total Passed: ${results.overallSummary.passed}`);
|
|
318
|
+
console.log(`ā Total Failed: ${results.overallSummary.failed}`);
|
|
319
|
+
console.log(`ā ļø Total Warnings: ${results.overallSummary.warnings}`);
|
|
320
|
+
const passRate = (results.overallSummary.passed /
|
|
321
|
+
(results.overallSummary.passed + results.overallSummary.failed)) *
|
|
322
|
+
100;
|
|
323
|
+
console.log(`š Pass Rate: ${passRate.toFixed(1)}%`);
|
|
324
|
+
console.log(`ā±ļø Duration: ${(results.totalDuration / 1000).toFixed(1)}s`);
|
|
325
|
+
console.log('='.repeat(60));
|
|
326
|
+
// Exit with appropriate code
|
|
327
|
+
if (results.overallSummary.failed > 0) {
|
|
328
|
+
console.log('ā Tests failed. Please review the report for details.');
|
|
329
|
+
process.exit(1);
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
console.log('š All tests passed successfully!');
|
|
333
|
+
process.exit(0);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
console.error('š„ Test execution failed:', error);
|
|
338
|
+
process.exit(1);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Quick test function for development
|
|
343
|
+
*/
|
|
344
|
+
async function quickTest() {
|
|
345
|
+
console.log('š„ Running Quick Test...');
|
|
346
|
+
try {
|
|
347
|
+
const testSuite = new SoapTestSuite_1.SoapTestSuite();
|
|
348
|
+
const results = await testSuite.runComprehensiveTests();
|
|
349
|
+
console.log('\nšÆ Quick Test Results:');
|
|
350
|
+
console.log(`Passed: ${results.overallSummary.passed}`);
|
|
351
|
+
console.log(`Failed: ${results.overallSummary.failed}`);
|
|
352
|
+
console.log(`Warnings: ${results.overallSummary.warnings}`);
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
console.error('Quick test failed:', error);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Command line handling
|
|
359
|
+
const command = process.argv[2];
|
|
360
|
+
switch (command) {
|
|
361
|
+
case 'quick':
|
|
362
|
+
quickTest();
|
|
363
|
+
break;
|
|
364
|
+
case 'help':
|
|
365
|
+
console.log(`
|
|
366
|
+
SOAP Test Agent - Usage:
|
|
367
|
+
|
|
368
|
+
npm run test:agent - Run full comprehensive tests with reports
|
|
369
|
+
npm run test:agent quick - Run quick test without reports
|
|
370
|
+
npm run test:agent help - Show this help message
|
|
371
|
+
|
|
372
|
+
Options:
|
|
373
|
+
--format [html|md|json] - Specify report format (default: all)
|
|
374
|
+
--output <directory> - Specify output directory (default: ./test-reports)
|
|
375
|
+
`);
|
|
376
|
+
break;
|
|
377
|
+
default:
|
|
378
|
+
main();
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=test-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-agent.js","sourceRoot":"","sources":["../../src/scripts/test-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -36,9 +36,9 @@ export type TEingabeFassung = {
|
|
|
36
36
|
};
|
|
37
37
|
export type TEingabeZentrierung = {
|
|
38
38
|
zentrHor: number;
|
|
39
|
-
zentrVerfahrenHor:
|
|
39
|
+
zentrVerfahrenHor: 'P' | 'x' | 'u' | 'q';
|
|
40
40
|
zentrVer: number;
|
|
41
|
-
zentrVerfahrenVer:
|
|
41
|
+
zentrVerfahrenVer: 'y' | 'h' | 'v' | 'F';
|
|
42
42
|
zentrierKorrBeruecksichtigtHor?: boolean;
|
|
43
43
|
zentrierKorrBeruecksichtigtVer?: boolean;
|
|
44
44
|
};
|
|
@@ -59,14 +59,14 @@ export type TEingabeWirkung = {
|
|
|
59
59
|
};
|
|
60
60
|
export type TEingabeDurchmesser = {
|
|
61
61
|
orderProdukt: string;
|
|
62
|
-
mdmkz?:
|
|
62
|
+
mdmkz?: 'J' | 'O' | 'N' | 'F' | 'X';
|
|
63
63
|
hdec?: number;
|
|
64
64
|
designPunktNaehe?: number;
|
|
65
65
|
fassung: TEingabeFassung;
|
|
66
66
|
wirkung: TEingabeWirkung;
|
|
67
67
|
zentrierung: TEingabeZentrierung;
|
|
68
68
|
bkWunsch?: number;
|
|
69
|
-
bkRutschen?:
|
|
69
|
+
bkRutschen?: 'F' | 'K';
|
|
70
70
|
einschleifAuftrag?: boolean;
|
|
71
71
|
durchmesser?: number;
|
|
72
72
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,EAAE,QAAQ,CAAC;IAClB,WAAW,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC;IAChE,kBAAkB,EAAE,8BAA8B,CAAC;IACnD,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,gBAAgB,CAAC,EAAE,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frame.soap",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "SOAP client library for Frame services",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
"prepublishOnly": "npm run build",
|
|
20
20
|
"test": "vitest",
|
|
21
21
|
"test:cov": "vitest run --coverage",
|
|
22
|
+
"test:agent": "npx tsx src/scripts/test-agent.ts",
|
|
23
|
+
"test:agent:quick": "npx tsx src/scripts/test-agent.ts quick",
|
|
24
|
+
"test:comprehensive": "vitest run src/__tests__/ComprehensiveSoapTests.test.ts",
|
|
25
|
+
"test:suite": "vitest run src/__tests__/SoapTestSuite.ts",
|
|
26
|
+
"test:watch": "vitest --watch",
|
|
27
|
+
"test:agent:watch": "nodemon --exec 'npm run test:agent:quick' --watch src",
|
|
22
28
|
"lint": "tsc --noEmit",
|
|
23
29
|
"lint:fix": "echo 'Run tsc --noEmit to check for type errors'"
|
|
24
30
|
},
|
|
@@ -37,5 +43,10 @@
|
|
|
37
43
|
"jest": "^30.2.0",
|
|
38
44
|
"typescript": "^5.9.3",
|
|
39
45
|
"vitest": "^4.0.17"
|
|
46
|
+
},
|
|
47
|
+
"husky": {
|
|
48
|
+
"hooks": {
|
|
49
|
+
"pre-commit": "npm run test:agent:quick"
|
|
50
|
+
}
|
|
40
51
|
}
|
|
41
52
|
}
|