fast-api-tester 1.0.11 → 1.0.13
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/apiEngine.d.ts +18 -10
- package/dist/apiEngine.d.ts.map +1 -1
- package/dist/apiEngine.js +77 -26
- package/dist/apiEngine.js.map +1 -1
- package/package.json +1 -1
- package/readme +71 -1
package/dist/apiEngine.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
2
|
+
export type AssertionMode = 'hard' | 'soft';
|
|
2
3
|
export interface RequestOptions {
|
|
3
4
|
headers?: Record<string, string>;
|
|
4
5
|
query?: Record<string, string | number | boolean>;
|
|
@@ -36,13 +37,20 @@ export declare class ApiResponse<T = unknown> implements ApiResponseData<T> {
|
|
|
36
37
|
body: T;
|
|
37
38
|
latencyMs: number;
|
|
38
39
|
lastExecutionRecord?: TestExecutionRecord;
|
|
39
|
-
|
|
40
|
+
private assertionMode;
|
|
41
|
+
constructor(data: ApiResponseData<T>, mode?: AssertionMode);
|
|
42
|
+
setAssertionMode(mode: AssertionMode): this;
|
|
43
|
+
/** Soft assertions log failure to the report but continue test execution */
|
|
44
|
+
soft(): this;
|
|
45
|
+
/** Hard assertions immediately abort suite on failure */
|
|
46
|
+
hard(): this;
|
|
47
|
+
/** Internal handler to route failure based on hard/soft mode */
|
|
48
|
+
private handleAssertionFailure;
|
|
40
49
|
expectLatencyUnder(maxLatencyMs: number): this;
|
|
50
|
+
expectStatus(expectedCode: number): this;
|
|
51
|
+
expectStatusOk(): this;
|
|
52
|
+
expectBodyContains(substring: string): this;
|
|
41
53
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Utility to parse intervals like "1m", "3m", "5m", "30m", or "10s" into milliseconds.
|
|
44
|
-
* Checks both environment variables (INTERVAL=1m) and CLI arguments (--interval 1m).
|
|
45
|
-
*/
|
|
46
54
|
export declare function parseCliInterval(): {
|
|
47
55
|
raw: string;
|
|
48
56
|
ms: number;
|
|
@@ -55,6 +63,8 @@ export declare class ApiEngine {
|
|
|
55
63
|
private historyFilePath;
|
|
56
64
|
private autoReportEnabled;
|
|
57
65
|
private simulatedLatencyMs;
|
|
66
|
+
private defaultAssertionMode;
|
|
67
|
+
setAssertionMode(mode: AssertionMode): this;
|
|
58
68
|
setBaseUrl(url: string): this;
|
|
59
69
|
setHeader(key: string, value: string): this;
|
|
60
70
|
simulateNetwork(profile: NetworkProfile): this;
|
|
@@ -70,13 +80,11 @@ export declare class ApiEngine {
|
|
|
70
80
|
delete<T = unknown>(path: string, options?: Omit<RequestOptions, 'body'>): Promise<ApiResponse<T>>;
|
|
71
81
|
request<T = unknown>(method: HttpMethod, path: string, options?: RequestOptions): Promise<ApiResponse<T>>;
|
|
72
82
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
83
|
+
* Throws a hard abort error if any tests failed during the execution cycle.
|
|
84
|
+
* Best used at the end of a soft-assertion test suite.
|
|
75
85
|
*/
|
|
86
|
+
assertAll(): void;
|
|
76
87
|
startHeartbeat(testFn: () => Promise<void>): Promise<never>;
|
|
77
|
-
/**
|
|
78
|
-
* Persists current run to history file and returns all past execution history
|
|
79
|
-
*/
|
|
80
88
|
private updateAndGetHistory;
|
|
81
89
|
private generateHtmlReport;
|
|
82
90
|
destroy(): Promise<void>;
|
package/dist/apiEngine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiEngine.d.ts","sourceRoot":"","sources":["../src/apiEngine.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"apiEngine.d.ts","sourceRoot":"","sources":["../src/apiEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/apiEngine.js
CHANGED
|
@@ -8,30 +8,76 @@ const NETWORK_LATENCY_MAP = {
|
|
|
8
8
|
'4G': 100, // 100ms artificial delay
|
|
9
9
|
'None': 0,
|
|
10
10
|
};
|
|
11
|
-
// ----------------------------------------
|
|
12
11
|
export class ApiResponse {
|
|
13
12
|
statusCode;
|
|
14
13
|
headers;
|
|
15
14
|
body;
|
|
16
15
|
latencyMs;
|
|
17
16
|
lastExecutionRecord;
|
|
18
|
-
|
|
17
|
+
// --- NEW: Default assertion mode for this response ---
|
|
18
|
+
assertionMode = 'hard';
|
|
19
|
+
constructor(data, mode = 'hard') {
|
|
19
20
|
this.statusCode = data.statusCode;
|
|
20
21
|
this.headers = data.headers;
|
|
21
22
|
this.body = data.body;
|
|
22
23
|
this.latencyMs = data.latencyMs;
|
|
24
|
+
this.assertionMode = mode;
|
|
23
25
|
}
|
|
26
|
+
// --- NEW: Assertion Mode Chaining Helpers ---
|
|
27
|
+
setAssertionMode(mode) {
|
|
28
|
+
this.assertionMode = mode;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/** Soft assertions log failure to the report but continue test execution */
|
|
32
|
+
soft() {
|
|
33
|
+
return this.setAssertionMode('soft');
|
|
34
|
+
}
|
|
35
|
+
/** Hard assertions immediately abort suite on failure */
|
|
36
|
+
hard() {
|
|
37
|
+
return this.setAssertionMode('hard');
|
|
38
|
+
}
|
|
39
|
+
/** Internal handler to route failure based on hard/soft mode */
|
|
40
|
+
handleAssertionFailure(errorMsg) {
|
|
41
|
+
if (this.lastExecutionRecord) {
|
|
42
|
+
this.lastExecutionRecord.passed = false;
|
|
43
|
+
this.lastExecutionRecord.errorMsg = this.lastExecutionRecord.errorMsg
|
|
44
|
+
? `${this.lastExecutionRecord.errorMsg} | ${errorMsg}`
|
|
45
|
+
: errorMsg;
|
|
46
|
+
}
|
|
47
|
+
if (this.assertionMode === 'hard') {
|
|
48
|
+
throw new Error(`[Hard Assertion Failed] ${errorMsg}`);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.warn(`⚠️ [Soft Assertion Failed] ${errorMsg}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// --------------------------------------------
|
|
24
55
|
expectLatencyUnder(maxLatencyMs) {
|
|
25
56
|
if (this.lastExecutionRecord) {
|
|
26
57
|
this.lastExecutionRecord.slaLimitMs = maxLatencyMs;
|
|
27
58
|
}
|
|
28
59
|
if (this.latencyMs >= maxLatencyMs) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
60
|
+
this.handleAssertionFailure(`[SLA Violation] Expected response latency under ${maxLatencyMs}ms, took ${this.latencyMs.toFixed(2)}ms.`);
|
|
61
|
+
}
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
// --- NEW: Additional Assertion Methods ---
|
|
65
|
+
expectStatus(expectedCode) {
|
|
66
|
+
if (this.statusCode !== expectedCode) {
|
|
67
|
+
this.handleAssertionFailure(`Expected HTTP status ${expectedCode}, received ${this.statusCode}.`);
|
|
68
|
+
}
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
expectStatusOk() {
|
|
72
|
+
if (this.statusCode < 200 || this.statusCode >= 300) {
|
|
73
|
+
this.handleAssertionFailure(`Expected 2xx OK status, received ${this.statusCode}.`);
|
|
74
|
+
}
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
expectBodyContains(substring) {
|
|
78
|
+
const bodyStr = typeof this.body === 'object' ? JSON.stringify(this.body) : String(this.body);
|
|
79
|
+
if (!bodyStr.includes(substring)) {
|
|
80
|
+
this.handleAssertionFailure(`Expected response body to contain "${substring}".`);
|
|
35
81
|
}
|
|
36
82
|
return this;
|
|
37
83
|
}
|
|
@@ -49,10 +95,6 @@ function getOrCreatePool(origin) {
|
|
|
49
95
|
}
|
|
50
96
|
return pool;
|
|
51
97
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Utility to parse intervals like "1m", "3m", "5m", "30m", or "10s" into milliseconds.
|
|
54
|
-
* Checks both environment variables (INTERVAL=1m) and CLI arguments (--interval 1m).
|
|
55
|
-
*/
|
|
56
98
|
export function parseCliInterval() {
|
|
57
99
|
let intervalStr = process.env.INTERVAL || null;
|
|
58
100
|
if (!intervalStr) {
|
|
@@ -89,8 +131,14 @@ export class ApiEngine {
|
|
|
89
131
|
reportOutputPath = 'test-report.html';
|
|
90
132
|
historyFilePath = '.test-history.json';
|
|
91
133
|
autoReportEnabled = true;
|
|
92
|
-
// --- NEW: Track requested simulation latency ---
|
|
93
134
|
simulatedLatencyMs = 0;
|
|
135
|
+
// --- NEW: Global Engine Assertion Mode ---
|
|
136
|
+
defaultAssertionMode = 'hard';
|
|
137
|
+
setAssertionMode(mode) {
|
|
138
|
+
this.defaultAssertionMode = mode;
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
// -----------------------------------------
|
|
94
142
|
setBaseUrl(url) {
|
|
95
143
|
this.baseUrl = url.endsWith('/') ? url.slice(0, -1) : url;
|
|
96
144
|
return this;
|
|
@@ -99,7 +147,6 @@ export class ApiEngine {
|
|
|
99
147
|
this.defaultHeaders[key.toLowerCase()] = value;
|
|
100
148
|
return this;
|
|
101
149
|
}
|
|
102
|
-
// --- NEW: Configuration method for Network Throttling ---
|
|
103
150
|
simulateNetwork(profile) {
|
|
104
151
|
if (typeof profile === 'number') {
|
|
105
152
|
this.simulatedLatencyMs = profile;
|
|
@@ -109,7 +156,6 @@ export class ApiEngine {
|
|
|
109
156
|
}
|
|
110
157
|
return this;
|
|
111
158
|
}
|
|
112
|
-
// --------------------------------------------------------
|
|
113
159
|
configureReport(options) {
|
|
114
160
|
if (options.enabled !== undefined)
|
|
115
161
|
this.autoReportEnabled = options.enabled;
|
|
@@ -160,11 +206,9 @@ export class ApiEngine {
|
|
|
160
206
|
}
|
|
161
207
|
const pool = getOrCreatePool(targetUrl.origin);
|
|
162
208
|
const startTime = process.hrtime.bigint();
|
|
163
|
-
// --- NEW: Apply Throttling Simulation ---
|
|
164
209
|
if (this.simulatedLatencyMs > 0) {
|
|
165
210
|
await new Promise((resolve) => setTimeout(resolve, this.simulatedLatencyMs));
|
|
166
211
|
}
|
|
167
|
-
// ----------------------------------------
|
|
168
212
|
const response = await pool.request({
|
|
169
213
|
path: `${targetUrl.pathname}${targetUrl.search}`,
|
|
170
214
|
method: method,
|
|
@@ -194,26 +238,38 @@ export class ApiEngine {
|
|
|
194
238
|
timestamp: new Date().toLocaleTimeString(),
|
|
195
239
|
};
|
|
196
240
|
this.records.push(record);
|
|
241
|
+
// Pass the engine's default assertion mode into the response
|
|
197
242
|
const apiResponse = new ApiResponse({
|
|
198
243
|
statusCode: response.statusCode,
|
|
199
244
|
headers: response.headers,
|
|
200
245
|
body: parsedBody,
|
|
201
246
|
latencyMs: formattedLatency,
|
|
202
|
-
});
|
|
247
|
+
}, this.defaultAssertionMode);
|
|
203
248
|
apiResponse.lastExecutionRecord = record;
|
|
204
249
|
return apiResponse;
|
|
205
250
|
}
|
|
251
|
+
// --- NEW: Evaluate All Soft Assertions at End of Suite ---
|
|
206
252
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
253
|
+
* Throws a hard abort error if any tests failed during the execution cycle.
|
|
254
|
+
* Best used at the end of a soft-assertion test suite.
|
|
209
255
|
*/
|
|
256
|
+
assertAll() {
|
|
257
|
+
const failedRecords = this.records.filter((r) => !r.passed);
|
|
258
|
+
if (failedRecords.length > 0) {
|
|
259
|
+
const summary = failedRecords
|
|
260
|
+
.map((r) => `${r.method} ${r.endpoint} [${r.statusCode}] -> ${r.errorMsg || 'Failed status'}`)
|
|
261
|
+
.join('\n - ');
|
|
262
|
+
throw new Error(`\n❌ [Suite Aborted] ${failedRecords.length} soft assertion(s) failed during execution:\n - ${summary}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// ---------------------------------------------------------
|
|
210
266
|
async startHeartbeat(testFn) {
|
|
211
267
|
const cliInterval = parseCliInterval();
|
|
212
268
|
const intervalMs = cliInterval?.ms ?? 60_000;
|
|
213
269
|
console.log(`\n🚀 Continuous Monitoring Active (Interval: ${cliInterval?.raw ?? '1m'})`);
|
|
214
270
|
while (true) {
|
|
215
271
|
try {
|
|
216
|
-
this.records = [];
|
|
272
|
+
this.records = [];
|
|
217
273
|
await testFn();
|
|
218
274
|
}
|
|
219
275
|
catch (err) {
|
|
@@ -228,9 +284,6 @@ export class ApiEngine {
|
|
|
228
284
|
}
|
|
229
285
|
}
|
|
230
286
|
}
|
|
231
|
-
/**
|
|
232
|
-
* Persists current run to history file and returns all past execution history
|
|
233
|
-
*/
|
|
234
287
|
updateAndGetHistory(currentSummary) {
|
|
235
288
|
const historyFile = path.resolve(this.historyFilePath);
|
|
236
289
|
let history = [];
|
|
@@ -243,7 +296,6 @@ export class ApiEngine {
|
|
|
243
296
|
history = [];
|
|
244
297
|
}
|
|
245
298
|
}
|
|
246
|
-
// Add current run and keep last 10 executions
|
|
247
299
|
history.push(currentSummary);
|
|
248
300
|
if (history.length > 10) {
|
|
249
301
|
history = history.slice(-10);
|
|
@@ -303,7 +355,6 @@ export class ApiEngine {
|
|
|
303
355
|
<head>
|
|
304
356
|
<meta charset="UTF-8">
|
|
305
357
|
<title>fast-api-tester Analytics & Execution Summary</title>
|
|
306
|
-
<!-- CDN load Chart.js -->
|
|
307
358
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
308
359
|
<style>
|
|
309
360
|
*, *::before, *::after { box-sizing: border-box; }
|
package/dist/apiEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiEngine.js","sourceRoot":"","sources":["../src/apiEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiEngine.js","sourceRoot":"","sources":["../src/apiEngine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme
CHANGED
|
@@ -187,8 +187,78 @@ Every execution run updates `test-report.html` and persists historical execution
|
|
|
187
187
|
- **Historical Execution Trend**: Stacked bar chart visualizing test pass/fail trends over time across consecutive heartbeats.
|
|
188
188
|
- **Detailed Table View**: Complete summary including HTTP Method, Endpoint, Status Code, Measured Latency, SLA Target, and exact error stack/messages for failing requests.
|
|
189
189
|
|
|
190
|
+
### 🐌 Bandwidth Throttling Simulator
|
|
191
|
+
|
|
192
|
+
Test your API's resilience and SLA assertions under real-world network conditions. The bandwidth simulator introduces precise artificial latency to mimic poor connections, ensuring your timeouts and SLA limits are truly battle-tested before hitting production.
|
|
193
|
+
|
|
194
|
+
**Available Profiles:**
|
|
195
|
+
|
|
196
|
+
- `Slow-3G`: 500ms delay
|
|
197
|
+
- `3G`: 300ms delay
|
|
198
|
+
- `4G`: 100ms delay
|
|
199
|
+
- `None`: 0ms delay (Default)
|
|
200
|
+
- Custom: Pass any raw `number` to simulate exact millisecond latency.
|
|
201
|
+
|
|
202
|
+
**Example Usage:**
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
import { ApiEngine } from './index';
|
|
206
|
+
|
|
207
|
+
// Initialize the engine with a 3G network profile (adds 300ms artificial delay)
|
|
208
|
+
const api = new ApiEngine()
|
|
209
|
+
.setBaseUrl('https://api.example.com')
|
|
210
|
+
.simulateNetwork('3G');
|
|
211
|
+
|
|
212
|
+
api.startHeartbeat(async () => {
|
|
213
|
+
const res = await api.get('/health');
|
|
214
|
+
|
|
215
|
+
// If the server takes 250ms to respond, total measured latency will be 550ms.
|
|
216
|
+
// This helps ensure your application handles degraded network states gracefully.
|
|
217
|
+
res.expectLatencyUnder(500);
|
|
218
|
+
});
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### ⚖️ Assertion Modes (Hard vs. Soft)
|
|
222
|
+
|
|
223
|
+
The framework supports two distinct validation behaviors to give you maximum flexibility when testing APIs:
|
|
224
|
+
|
|
225
|
+
- **Hard Assertions (Default)**: Designed for strict control flows where subsequent steps depend entirely on the success of the current step. When a hard assertion fails (e.g., unexpected status code or SLA violation), it immediately records the failure, updates the test execution record, and throws a fatal `Error` that aborts the test suite execution instantly.
|
|
226
|
+
- **Soft Assertions**: Designed for comprehensive test reporting where you want to execute an entire suite or multiple checks without stopping at the first error. When a soft assertion fails, it logs a warning, flags the failure in the test record, and continues test execution. This ensures all endpoints are tested and included in the final HTML report and telemetry history, rather than failing fast.
|
|
227
|
+
|
|
228
|
+
#### How the Implementation Works
|
|
229
|
+
|
|
230
|
+
**1. Configuration & Mode State (`AssertionMode`)**
|
|
231
|
+
|
|
232
|
+
- **Global Level**: You can configure the engine-wide default behavior using `engine.setAssertionMode('soft')` or `'hard'`. Every request made through the engine inherits this baseline mode.
|
|
233
|
+
- **Inline Level**: You can override the mode on a per-response chain using `.soft()` or `.hard()` right before your assertions.
|
|
234
|
+
|
|
235
|
+
**2. Centralized Error Handling (`handleAssertionFailure`)**
|
|
236
|
+
|
|
237
|
+
Instead of directly throwing errors inside every expectation method, assertions pass their failure message to a centralized handler:
|
|
238
|
+
|
|
239
|
+
- It updates the `TestExecutionRecord` by setting `passed = false` and appends the error message.
|
|
240
|
+
- If the mode is `'hard'`, it throws an `Error` immediately.
|
|
241
|
+
- If the mode is `'soft'`, it catches/bypasses the throw, logs a warning message to the console (`console.warn`), and allows the script execution to proceed normally.
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
const engine = new ApiEngine()
|
|
245
|
+
.setBaseUrl('https://api.example.com')
|
|
246
|
+
.setAssertionMode('soft'); // Make all requests log failures but continue
|
|
247
|
+
|
|
248
|
+
await engine.startHeartbeat(async () => {
|
|
249
|
+
// Even if this fails (e.g., latency > 50ms), execution continues!
|
|
250
|
+
await engine.get('/users').then(res => res.expectStatusOk().expectLatencyUnder(50));
|
|
251
|
+
|
|
252
|
+
// This request STILL executes and gets recorded in the HTML report
|
|
253
|
+
await engine.get('/orders').then(res => res.expectStatus(200));
|
|
254
|
+
|
|
255
|
+
// Abort suite hard AT THE END if any soft assertions failed above
|
|
256
|
+
engine.assertAll();
|
|
257
|
+
});
|
|
258
|
+
```
|
|
259
|
+
|
|
190
260
|
---
|
|
191
261
|
|
|
192
262
|
## 📜 License
|
|
193
263
|
|
|
194
|
-
[MIT](./LICENSE) © Kushan Amarasiri
|
|
264
|
+
[MIT](./LICENSE) © Kushan Amarasiri
|