observability-toolkit 1.8.2 → 1.8.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/README.md +60 -0
- package/dist/backends/index.d.ts +43 -0
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +41 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/index.test.d.ts +5 -0
- package/dist/backends/index.test.d.ts.map +1 -0
- package/dist/backends/index.test.js +156 -0
- package/dist/backends/index.test.js.map +1 -0
- package/dist/backends/local-jsonl-boolean-search.test.js +15 -12
- package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
- package/dist/backends/local-jsonl-cache.test.d.ts +2 -0
- package/dist/backends/local-jsonl-cache.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-cache.test.js +295 -0
- package/dist/backends/local-jsonl-cache.test.js.map +1 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.d.ts +2 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.js +180 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.js.map +1 -0
- package/dist/backends/local-jsonl-export.test.d.ts +2 -0
- package/dist/backends/local-jsonl-export.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-export.test.js +704 -0
- package/dist/backends/local-jsonl-export.test.js.map +1 -0
- package/dist/backends/local-jsonl-index.test.d.ts +2 -0
- package/dist/backends/local-jsonl-index.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-index.test.js +554 -0
- package/dist/backends/local-jsonl-index.test.js.map +1 -0
- package/dist/backends/local-jsonl-logs.test.d.ts +2 -0
- package/dist/backends/local-jsonl-logs.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-logs.test.js +612 -0
- package/dist/backends/local-jsonl-logs.test.js.map +1 -0
- package/dist/backends/local-jsonl-metrics.test.d.ts +2 -0
- package/dist/backends/local-jsonl-metrics.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-metrics.test.js +876 -0
- package/dist/backends/local-jsonl-metrics.test.js.map +1 -0
- package/dist/backends/local-jsonl-traces.test.d.ts +2 -0
- package/dist/backends/local-jsonl-traces.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-traces.test.js +1729 -0
- package/dist/backends/local-jsonl-traces.test.js.map +1 -0
- package/dist/backends/local-jsonl.d.ts +9 -0
- package/dist/backends/local-jsonl.d.ts.map +1 -1
- package/dist/backends/local-jsonl.js +348 -227
- package/dist/backends/local-jsonl.js.map +1 -1
- package/dist/backends/local-jsonl.test.js +290 -21
- package/dist/backends/local-jsonl.test.js.map +1 -1
- package/dist/backends/signoz-api-circuit-breaker.test.d.ts +6 -0
- package/dist/backends/signoz-api-circuit-breaker.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-circuit-breaker.test.js +548 -0
- package/dist/backends/signoz-api-circuit-breaker.test.js.map +1 -0
- package/dist/backends/signoz-api-rate-limiter.test.d.ts +6 -0
- package/dist/backends/signoz-api-rate-limiter.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-rate-limiter.test.js +389 -0
- package/dist/backends/signoz-api-rate-limiter.test.js.map +1 -0
- package/dist/backends/signoz-api-ssrf.test.d.ts +6 -0
- package/dist/backends/signoz-api-ssrf.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-ssrf.test.js +216 -0
- package/dist/backends/signoz-api-ssrf.test.js.map +1 -0
- package/dist/backends/signoz-api-test-helpers.d.ts +80 -0
- package/dist/backends/signoz-api-test-helpers.d.ts.map +1 -0
- package/dist/backends/signoz-api-test-helpers.js +79 -0
- package/dist/backends/signoz-api-test-helpers.js.map +1 -0
- package/dist/backends/signoz-api.d.ts +16 -0
- package/dist/backends/signoz-api.d.ts.map +1 -1
- package/dist/backends/signoz-api.js +71 -9
- package/dist/backends/signoz-api.js.map +1 -1
- package/dist/backends/signoz-api.test.d.ts +9 -0
- package/dist/backends/signoz-api.test.d.ts.map +1 -1
- package/dist/backends/signoz-api.test.js +14 -1027
- package/dist/backends/signoz-api.test.js.map +1 -1
- package/dist/lib/cache.d.ts +47 -1
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +40 -3
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/circuit-breaker.d.ts +83 -0
- package/dist/lib/circuit-breaker.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.js +125 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/circuit-breaker.test.d.ts +2 -0
- package/dist/lib/circuit-breaker.test.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.test.js +263 -0
- package/dist/lib/circuit-breaker.test.js.map +1 -0
- package/dist/lib/constants-symlink.test.d.ts +12 -0
- package/dist/lib/constants-symlink.test.d.ts.map +1 -0
- package/dist/lib/constants-symlink.test.js +357 -0
- package/dist/lib/constants-symlink.test.js.map +1 -0
- package/dist/lib/constants.d.ts +43 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +154 -24
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/constants.test.js +156 -7
- package/dist/lib/constants.test.js.map +1 -1
- package/dist/lib/edge-cases.test.d.ts +11 -0
- package/dist/lib/edge-cases.test.d.ts.map +1 -0
- package/dist/lib/edge-cases.test.js +634 -0
- package/dist/lib/edge-cases.test.js.map +1 -0
- package/dist/lib/error-sanitizer.d.ts.map +1 -1
- package/dist/lib/error-sanitizer.js +62 -26
- package/dist/lib/error-sanitizer.js.map +1 -1
- package/dist/lib/error-sanitizer.test.js +186 -0
- package/dist/lib/error-sanitizer.test.js.map +1 -1
- package/dist/lib/error-types.d.ts +54 -0
- package/dist/lib/error-types.d.ts.map +1 -0
- package/dist/lib/error-types.js +154 -0
- package/dist/lib/error-types.js.map +1 -0
- package/dist/lib/error-types.test.d.ts +2 -0
- package/dist/lib/error-types.test.d.ts.map +1 -0
- package/dist/lib/error-types.test.js +196 -0
- package/dist/lib/error-types.test.js.map +1 -0
- package/dist/lib/file-utils.test.js +3 -3
- package/dist/lib/file-utils.test.js.map +1 -1
- package/dist/lib/indexer.test.js +157 -24
- package/dist/lib/indexer.test.js.map +1 -1
- package/dist/lib/input-validator.d.ts +17 -0
- package/dist/lib/input-validator.d.ts.map +1 -1
- package/dist/lib/input-validator.fuzz.test.d.ts +12 -0
- package/dist/lib/input-validator.fuzz.test.d.ts.map +1 -0
- package/dist/lib/input-validator.fuzz.test.js +290 -0
- package/dist/lib/input-validator.fuzz.test.js.map +1 -0
- package/dist/lib/input-validator.js +62 -3
- package/dist/lib/input-validator.js.map +1 -1
- package/dist/lib/input-validator.test.js +129 -1
- package/dist/lib/input-validator.test.js.map +1 -1
- package/dist/lib/logger.d.ts +46 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +81 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/logger.test.d.ts +2 -0
- package/dist/lib/logger.test.d.ts.map +1 -0
- package/dist/lib/logger.test.js +122 -0
- package/dist/lib/logger.test.js.map +1 -0
- package/dist/lib/query-sanitizer.d.ts +51 -3
- package/dist/lib/query-sanitizer.d.ts.map +1 -1
- package/dist/lib/query-sanitizer.js +105 -31
- package/dist/lib/query-sanitizer.js.map +1 -1
- package/dist/lib/query-sanitizer.test.js +102 -1
- package/dist/lib/query-sanitizer.test.js.map +1 -1
- package/dist/lib/server-utils.d.ts +88 -0
- package/dist/lib/server-utils.d.ts.map +1 -0
- package/dist/lib/server-utils.js +173 -0
- package/dist/lib/server-utils.js.map +1 -0
- package/dist/lib/shared-schemas.d.ts +81 -0
- package/dist/lib/shared-schemas.d.ts.map +1 -0
- package/dist/lib/shared-schemas.js +80 -0
- package/dist/lib/shared-schemas.js.map +1 -0
- package/dist/lib/shared-schemas.test.d.ts +5 -0
- package/dist/lib/shared-schemas.test.d.ts.map +1 -0
- package/dist/lib/shared-schemas.test.js +106 -0
- package/dist/lib/shared-schemas.test.js.map +1 -0
- package/dist/lib/toon-encoder.d.ts +26 -0
- package/dist/lib/toon-encoder.d.ts.map +1 -0
- package/dist/lib/toon-encoder.js +61 -0
- package/dist/lib/toon-encoder.js.map +1 -0
- package/dist/lib/toon-encoder.test.d.ts +5 -0
- package/dist/lib/toon-encoder.test.d.ts.map +1 -0
- package/dist/lib/toon-encoder.test.js +85 -0
- package/dist/lib/toon-encoder.test.js.map +1 -0
- package/dist/server.d.ts +1 -49
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +154 -162
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +198 -7
- package/dist/server.test.js.map +1 -1
- package/dist/test-helpers/env-utils.d.ts +87 -0
- package/dist/test-helpers/env-utils.d.ts.map +1 -0
- package/dist/test-helpers/env-utils.js +132 -0
- package/dist/test-helpers/env-utils.js.map +1 -0
- package/dist/test-helpers/file-utils.d.ts +67 -0
- package/dist/test-helpers/file-utils.d.ts.map +1 -1
- package/dist/test-helpers/file-utils.js +165 -2
- package/dist/test-helpers/file-utils.js.map +1 -1
- package/dist/test-helpers/fuzz-generators.d.ts +58 -0
- package/dist/test-helpers/fuzz-generators.d.ts.map +1 -0
- package/dist/test-helpers/fuzz-generators.js +216 -0
- package/dist/test-helpers/fuzz-generators.js.map +1 -0
- package/dist/test-helpers/index.d.ts +11 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +30 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/memfs-utils.d.ts +181 -0
- package/dist/test-helpers/memfs-utils.d.ts.map +1 -0
- package/dist/test-helpers/memfs-utils.js +292 -0
- package/dist/test-helpers/memfs-utils.js.map +1 -0
- package/dist/test-helpers/memfs-utils.test.d.ts +5 -0
- package/dist/test-helpers/memfs-utils.test.d.ts.map +1 -0
- package/dist/test-helpers/memfs-utils.test.js +338 -0
- package/dist/test-helpers/memfs-utils.test.js.map +1 -0
- package/dist/test-helpers/mock-backends.d.ts +113 -2
- package/dist/test-helpers/mock-backends.d.ts.map +1 -1
- package/dist/test-helpers/mock-backends.js +199 -3
- package/dist/test-helpers/mock-backends.js.map +1 -1
- package/dist/test-helpers/mock-backends.test.d.ts +5 -0
- package/dist/test-helpers/mock-backends.test.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.test.js +368 -0
- package/dist/test-helpers/mock-backends.test.js.map +1 -0
- package/dist/test-helpers/race-condition-helpers.d.ts +85 -0
- package/dist/test-helpers/race-condition-helpers.d.ts.map +1 -0
- package/dist/test-helpers/race-condition-helpers.js +279 -0
- package/dist/test-helpers/race-condition-helpers.js.map +1 -0
- package/dist/test-helpers/schema-validators.d.ts +32 -0
- package/dist/test-helpers/schema-validators.d.ts.map +1 -0
- package/dist/test-helpers/schema-validators.js +125 -0
- package/dist/test-helpers/schema-validators.js.map +1 -0
- package/dist/test-helpers/test-data-builders.d.ts +260 -0
- package/dist/test-helpers/test-data-builders.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.js +337 -0
- package/dist/test-helpers/test-data-builders.js.map +1 -0
- package/dist/test-helpers/test-data-builders.test.d.ts +2 -0
- package/dist/test-helpers/test-data-builders.test.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.test.js +306 -0
- package/dist/test-helpers/test-data-builders.test.js.map +1 -0
- package/dist/test-helpers/tool-validators.d.ts +28 -0
- package/dist/test-helpers/tool-validators.d.ts.map +1 -0
- package/dist/test-helpers/tool-validators.js +71 -0
- package/dist/test-helpers/tool-validators.js.map +1 -0
- package/dist/tools/context-stats.d.ts +1 -0
- package/dist/tools/context-stats.d.ts.map +1 -1
- package/dist/tools/context-stats.js +9 -5
- package/dist/tools/context-stats.js.map +1 -1
- package/dist/tools/context-stats.test.js +24 -10
- package/dist/tools/context-stats.test.js.map +1 -1
- package/dist/tools/get-trace-url.js +2 -2
- package/dist/tools/get-trace-url.js.map +1 -1
- package/dist/tools/health-check.js +2 -2
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/query-evaluations.d.ts +21 -18
- package/dist/tools/query-evaluations.d.ts.map +1 -1
- package/dist/tools/query-evaluations.js +33 -19
- package/dist/tools/query-evaluations.js.map +1 -1
- package/dist/tools/query-evaluations.test.js +60 -63
- package/dist/tools/query-evaluations.test.js.map +1 -1
- package/dist/tools/query-llm-events.d.ts +19 -15
- package/dist/tools/query-llm-events.d.ts.map +1 -1
- package/dist/tools/query-llm-events.js +31 -15
- package/dist/tools/query-llm-events.js.map +1 -1
- package/dist/tools/query-llm-events.test.js +277 -12
- package/dist/tools/query-llm-events.test.js.map +1 -1
- package/dist/tools/query-logs.d.ts +22 -22
- package/dist/tools/query-logs.d.ts.map +1 -1
- package/dist/tools/query-logs.js +9 -9
- package/dist/tools/query-logs.js.map +1 -1
- package/dist/tools/query-logs.test.js +19 -72
- package/dist/tools/query-logs.test.js.map +1 -1
- package/dist/tools/query-metrics.d.ts +14 -14
- package/dist/tools/query-metrics.d.ts.map +1 -1
- package/dist/tools/query-metrics.js +9 -9
- package/dist/tools/query-metrics.js.map +1 -1
- package/dist/tools/query-metrics.test.js +12 -25
- package/dist/tools/query-metrics.test.js.map +1 -1
- package/dist/tools/query-traces.d.ts +28 -28
- package/dist/tools/query-traces.d.ts.map +1 -1
- package/dist/tools/query-traces.js +18 -18
- package/dist/tools/query-traces.js.map +1 -1
- package/dist/tools/query-traces.test.js +58 -54
- package/dist/tools/query-traces.test.js.map +1 -1
- package/dist/tools/setup-claudeignore.js +7 -7
- package/dist/tools/setup-claudeignore.js.map +1 -1
- package/dist/tools/setup-claudeignore.test.js +4 -25
- package/dist/tools/setup-claudeignore.test.js.map +1 -1
- package/package.json +4 -2
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared test utilities for file operations
|
|
3
3
|
*/
|
|
4
4
|
import * as fs from 'fs';
|
|
5
|
+
import * as fsp from 'fs/promises';
|
|
5
6
|
import * as path from 'path';
|
|
6
7
|
import * as os from 'os';
|
|
7
8
|
/**
|
|
@@ -12,6 +13,8 @@ import * as os from 'os';
|
|
|
12
13
|
export function createTempDir(prefix = 'test-') {
|
|
13
14
|
return fs.mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
14
15
|
}
|
|
16
|
+
/** Track cleanup failures for debugging test pollution */
|
|
17
|
+
let cleanupFailureCount = 0;
|
|
15
18
|
/**
|
|
16
19
|
* Remove a temporary directory and all its contents
|
|
17
20
|
* @param dir - Path to the directory to remove
|
|
@@ -20,8 +23,37 @@ export function removeTempDir(dir) {
|
|
|
20
23
|
try {
|
|
21
24
|
fs.rmSync(dir, { recursive: true, force: true });
|
|
22
25
|
}
|
|
23
|
-
catch {
|
|
24
|
-
|
|
26
|
+
catch (error) {
|
|
27
|
+
cleanupFailureCount++;
|
|
28
|
+
// Log warning to help debug test pollution issues
|
|
29
|
+
console.warn(`[test-cleanup] Failed to remove temp dir (${cleanupFailureCount} total failures): ${dir}`);
|
|
30
|
+
if (error instanceof Error) {
|
|
31
|
+
console.warn(`[test-cleanup] Reason: ${error.message}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the count of cleanup failures (for test diagnostics)
|
|
37
|
+
*/
|
|
38
|
+
export function getCleanupFailureCount() {
|
|
39
|
+
return cleanupFailureCount;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Reset cleanup failure counter (call in test setup)
|
|
43
|
+
*/
|
|
44
|
+
export function resetCleanupFailureCount() {
|
|
45
|
+
cleanupFailureCount = 0;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Assert no cleanup failures occurred (call in afterEach to detect test pollution)
|
|
49
|
+
* @throws Error if cleanup failures occurred
|
|
50
|
+
*/
|
|
51
|
+
export function assertNoCleanupFailures() {
|
|
52
|
+
const failures = getCleanupFailureCount();
|
|
53
|
+
if (failures > 0) {
|
|
54
|
+
const msg = `Test pollution detected: ${failures} cleanup failure(s) occurred`;
|
|
55
|
+
resetCleanupFailureCount(); // Reset for next test
|
|
56
|
+
throw new Error(msg);
|
|
25
57
|
}
|
|
26
58
|
}
|
|
27
59
|
/**
|
|
@@ -33,6 +65,15 @@ export function writeJsonlFile(filePath, data) {
|
|
|
33
65
|
const content = data.map(item => JSON.stringify(item)).join('\n');
|
|
34
66
|
fs.writeFileSync(filePath, content, 'utf-8');
|
|
35
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Async version of writeJsonlFile for parallel test execution
|
|
70
|
+
* @param filePath - Path to the JSONL file
|
|
71
|
+
* @param data - Array of objects to write
|
|
72
|
+
*/
|
|
73
|
+
export async function writeJsonlFileAsync(filePath, data) {
|
|
74
|
+
const content = data.map(item => JSON.stringify(item)).join('\n');
|
|
75
|
+
await fsp.writeFile(filePath, content, 'utf-8');
|
|
76
|
+
}
|
|
36
77
|
/**
|
|
37
78
|
* Get today's date in YYYY-MM-DD format
|
|
38
79
|
* @returns Today's date string
|
|
@@ -40,4 +81,126 @@ export function writeJsonlFile(filePath, data) {
|
|
|
40
81
|
export function getTestDate() {
|
|
41
82
|
return new Date().toISOString().split('T')[0];
|
|
42
83
|
}
|
|
84
|
+
/** Track shared temp directories for suite-level cleanup */
|
|
85
|
+
const sharedTempDirs = new Map();
|
|
86
|
+
/**
|
|
87
|
+
* Get or create a shared temp directory for a test suite
|
|
88
|
+
* Use this for read-only tests that can share fixtures
|
|
89
|
+
* @param suiteId - Unique identifier for the test suite
|
|
90
|
+
* @param prefix - Optional prefix for the temp directory name
|
|
91
|
+
* @returns Absolute path to the shared temp directory
|
|
92
|
+
*/
|
|
93
|
+
export function getSharedTempDir(suiteId, prefix = 'shared-test-') {
|
|
94
|
+
const existing = sharedTempDirs.get(suiteId);
|
|
95
|
+
if (existing && fs.existsSync(existing)) {
|
|
96
|
+
return existing;
|
|
97
|
+
}
|
|
98
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
99
|
+
sharedTempDirs.set(suiteId, dir);
|
|
100
|
+
return dir;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Clear contents of a shared temp directory without deleting it
|
|
104
|
+
* Use in beforeEach when tests need clean state but can reuse directory
|
|
105
|
+
* @param dir - Path to the directory to clear
|
|
106
|
+
*/
|
|
107
|
+
export function clearTempDir(dir) {
|
|
108
|
+
if (!fs.existsSync(dir))
|
|
109
|
+
return;
|
|
110
|
+
const entries = fs.readdirSync(dir);
|
|
111
|
+
for (const entry of entries) {
|
|
112
|
+
fs.rmSync(path.join(dir, entry), { recursive: true, force: true });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Async version of clearTempDir for parallel test execution
|
|
117
|
+
* @param dir - Path to the directory to clear
|
|
118
|
+
*/
|
|
119
|
+
export async function clearTempDirAsync(dir) {
|
|
120
|
+
try {
|
|
121
|
+
await fsp.access(dir);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return; // Directory doesn't exist
|
|
125
|
+
}
|
|
126
|
+
const entries = await fsp.readdir(dir);
|
|
127
|
+
await Promise.all(entries.map(entry => fsp.rm(path.join(dir, entry), { recursive: true, force: true })));
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Remove a shared temp directory by suite ID
|
|
131
|
+
* Call in after() hook to clean up suite-level fixtures
|
|
132
|
+
* @param suiteId - Unique identifier for the test suite
|
|
133
|
+
*/
|
|
134
|
+
export function removeSharedTempDir(suiteId) {
|
|
135
|
+
const dir = sharedTempDirs.get(suiteId);
|
|
136
|
+
if (dir) {
|
|
137
|
+
removeTempDir(dir);
|
|
138
|
+
sharedTempDirs.delete(suiteId);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Clean up all shared temp directories
|
|
143
|
+
* Useful for global test teardown
|
|
144
|
+
*/
|
|
145
|
+
export function cleanupAllSharedTempDirs() {
|
|
146
|
+
for (const [suiteId, dir] of sharedTempDirs) {
|
|
147
|
+
try {
|
|
148
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Ignore cleanup errors
|
|
152
|
+
}
|
|
153
|
+
sharedTempDirs.delete(suiteId);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const indexedFixtures = new Map();
|
|
157
|
+
/**
|
|
158
|
+
* Create or get a cached test fixture with pre-built indexes
|
|
159
|
+
* Use this when multiple tests need the same indexed data
|
|
160
|
+
* @param fixtureId - Unique identifier for the fixture
|
|
161
|
+
* @param setup - Function to create test data files, receives temp dir path
|
|
162
|
+
* @param buildIndexes - Function to build indexes, receives temp dir path
|
|
163
|
+
* @returns Path to the fixture directory
|
|
164
|
+
*/
|
|
165
|
+
export async function getIndexedFixture(fixtureId, setup, buildIndexes) {
|
|
166
|
+
const existing = indexedFixtures.get(fixtureId);
|
|
167
|
+
if (existing && fs.existsSync(existing.dir)) {
|
|
168
|
+
return existing.dir;
|
|
169
|
+
}
|
|
170
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), `indexed-fixture-${fixtureId}-`));
|
|
171
|
+
// Setup test data
|
|
172
|
+
await setup(dir);
|
|
173
|
+
// Build indexes
|
|
174
|
+
await buildIndexes(dir);
|
|
175
|
+
indexedFixtures.set(fixtureId, {
|
|
176
|
+
dir,
|
|
177
|
+
files: new Map(),
|
|
178
|
+
indexed: true,
|
|
179
|
+
});
|
|
180
|
+
return dir;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Remove an indexed fixture by ID
|
|
184
|
+
* @param fixtureId - Unique identifier for the fixture
|
|
185
|
+
*/
|
|
186
|
+
export function removeIndexedFixture(fixtureId) {
|
|
187
|
+
const fixture = indexedFixtures.get(fixtureId);
|
|
188
|
+
if (fixture) {
|
|
189
|
+
try {
|
|
190
|
+
fs.rmSync(fixture.dir, { recursive: true, force: true });
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// Ignore cleanup errors
|
|
194
|
+
}
|
|
195
|
+
indexedFixtures.delete(fixtureId);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Clean up all indexed fixtures
|
|
200
|
+
*/
|
|
201
|
+
export function cleanupAllIndexedFixtures() {
|
|
202
|
+
for (const [id] of indexedFixtures) {
|
|
203
|
+
removeIndexedFixture(id);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
43
206
|
//# sourceMappingURL=file-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/test-helpers/file-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAM,GAAG,OAAO;IAC5C,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/test-helpers/file-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fuzzing utilities for security testing
|
|
3
|
+
*
|
|
4
|
+
* Provides generators for random inputs to test input validation resilience.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate a random Unicode string of specified length
|
|
8
|
+
* Includes various Unicode ranges for thorough testing
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateRandomUnicodeString(length: number): string;
|
|
11
|
+
/**
|
|
12
|
+
* Generate a random number in the specified range
|
|
13
|
+
*/
|
|
14
|
+
export declare function generateRandomNumber(min: number, max: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Generate a random integer in the specified range
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateRandomInteger(min: number, max: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* Generate a random date string (may be invalid)
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateRandomDateString(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Get common SQL injection payloads for testing
|
|
25
|
+
*/
|
|
26
|
+
export declare function getSqlInjectionPayloads(): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Get common path traversal payloads for testing
|
|
29
|
+
*/
|
|
30
|
+
export declare function getPathTraversalPayloads(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Get common XSS payloads for testing
|
|
33
|
+
*/
|
|
34
|
+
export declare function getXssPayloads(): string[];
|
|
35
|
+
/**
|
|
36
|
+
* Get special number edge cases for testing
|
|
37
|
+
*/
|
|
38
|
+
export declare function getSpecialNumbers(): number[];
|
|
39
|
+
/**
|
|
40
|
+
* Generate control character strings for testing
|
|
41
|
+
*/
|
|
42
|
+
export declare function getControlCharacterStrings(): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Generate regex patterns that could cause ReDoS
|
|
45
|
+
*/
|
|
46
|
+
export declare function getRedosPatterns(): string[];
|
|
47
|
+
/**
|
|
48
|
+
* Run a function multiple times with random inputs
|
|
49
|
+
*/
|
|
50
|
+
export declare function fuzz<T>(generator: () => T, fn: (input: T) => void, iterations?: number): {
|
|
51
|
+
passed: number;
|
|
52
|
+
failed: number;
|
|
53
|
+
errors: Array<{
|
|
54
|
+
input: T;
|
|
55
|
+
error: unknown;
|
|
56
|
+
}>;
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=fuzz-generators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzz-generators.d.ts","sourceRoot":"","sources":["../../src/test-helpers/fuzz-generators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAgBjD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAmBlD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAkBnD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAiBzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CA0B5C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAkBrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAe3C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,SAAS,EAAE,MAAM,CAAC,EAClB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACtB,UAAU,SAAM,GACf;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,CAiBjF"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fuzzing utilities for security testing
|
|
3
|
+
*
|
|
4
|
+
* Provides generators for random inputs to test input validation resilience.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate a random Unicode string of specified length
|
|
8
|
+
* Includes various Unicode ranges for thorough testing
|
|
9
|
+
*/
|
|
10
|
+
export function generateRandomUnicodeString(length) {
|
|
11
|
+
const ranges = [
|
|
12
|
+
[0x0020, 0x007E], // Basic Latin
|
|
13
|
+
[0x00A0, 0x00FF], // Latin-1 Supplement
|
|
14
|
+
[0x0100, 0x017F], // Latin Extended-A
|
|
15
|
+
[0x0400, 0x04FF], // Cyrillic
|
|
16
|
+
[0x0600, 0x06FF], // Arabic
|
|
17
|
+
[0x4E00, 0x4FFF], // CJK Unified Ideographs (subset)
|
|
18
|
+
[0x1F300, 0x1F3FF], // Misc Symbols and Pictographs
|
|
19
|
+
];
|
|
20
|
+
let result = '';
|
|
21
|
+
for (let i = 0; i < length; i++) {
|
|
22
|
+
const range = ranges[Math.floor(Math.random() * ranges.length)];
|
|
23
|
+
const codePoint = Math.floor(Math.random() * (range[1] - range[0] + 1)) + range[0];
|
|
24
|
+
result += String.fromCodePoint(codePoint);
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate a random number in the specified range
|
|
30
|
+
*/
|
|
31
|
+
export function generateRandomNumber(min, max) {
|
|
32
|
+
return Math.random() * (max - min) + min;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Generate a random integer in the specified range
|
|
36
|
+
*/
|
|
37
|
+
export function generateRandomInteger(min, max) {
|
|
38
|
+
return Math.floor(generateRandomNumber(min, max + 1));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Generate a random date string (may be invalid)
|
|
42
|
+
*/
|
|
43
|
+
export function generateRandomDateString() {
|
|
44
|
+
const formats = [
|
|
45
|
+
// Valid-ish formats
|
|
46
|
+
() => `${generateRandomInteger(1900, 2100)}-${String(generateRandomInteger(1, 12)).padStart(2, '0')}-${String(generateRandomInteger(1, 31)).padStart(2, '0')}`,
|
|
47
|
+
// Invalid formats
|
|
48
|
+
() => `${generateRandomInteger(1, 9999)}/${generateRandomInteger(1, 12)}/${generateRandomInteger(1, 31)}`,
|
|
49
|
+
() => `${String(generateRandomInteger(1, 31)).padStart(2, '0')}-${String(generateRandomInteger(1, 12)).padStart(2, '0')}-${generateRandomInteger(1900, 2100)}`,
|
|
50
|
+
() => generateRandomUnicodeString(10),
|
|
51
|
+
() => `${generateRandomInteger(-1000, 10000)}-${generateRandomInteger(-5, 15)}-${generateRandomInteger(-5, 40)}`,
|
|
52
|
+
() => '',
|
|
53
|
+
() => 'NaN-NaN-NaN',
|
|
54
|
+
() => '0000-00-00',
|
|
55
|
+
() => '9999-99-99',
|
|
56
|
+
];
|
|
57
|
+
return formats[Math.floor(Math.random() * formats.length)]();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get common SQL injection payloads for testing
|
|
61
|
+
*/
|
|
62
|
+
export function getSqlInjectionPayloads() {
|
|
63
|
+
return [
|
|
64
|
+
"'; DROP TABLE traces; --",
|
|
65
|
+
"1' OR '1'='1",
|
|
66
|
+
"1; SELECT * FROM users",
|
|
67
|
+
"' UNION SELECT * FROM secrets --",
|
|
68
|
+
"1 AND 1=1",
|
|
69
|
+
"' OR 1=1 --",
|
|
70
|
+
"admin'--",
|
|
71
|
+
"1'1",
|
|
72
|
+
"1' AND '1'='1",
|
|
73
|
+
"'; EXEC xp_cmdshell('dir'); --",
|
|
74
|
+
"1; WAITFOR DELAY '00:00:05'",
|
|
75
|
+
"' OR ''='",
|
|
76
|
+
"1' OR '1'='1' /*",
|
|
77
|
+
"1' ORDER BY 1--",
|
|
78
|
+
"'||'",
|
|
79
|
+
"' HAVING 1=1 --",
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get common path traversal payloads for testing
|
|
84
|
+
*/
|
|
85
|
+
export function getPathTraversalPayloads() {
|
|
86
|
+
return [
|
|
87
|
+
'../../../etc/passwd',
|
|
88
|
+
'..\\..\\..\\windows\\system32\\config\\sam',
|
|
89
|
+
'....//....//....//etc/passwd',
|
|
90
|
+
'..%2f..%2f..%2fetc%2fpasswd',
|
|
91
|
+
'..%252f..%252f..%252fetc%252fpasswd',
|
|
92
|
+
'%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd',
|
|
93
|
+
'..%c0%af..%c0%af..%c0%afetc/passwd',
|
|
94
|
+
'/etc/passwd%00.txt',
|
|
95
|
+
'../../../etc/passwd\0',
|
|
96
|
+
'..\\..\\..\\etc\\passwd',
|
|
97
|
+
'....//....//etc/passwd',
|
|
98
|
+
'..;/..;/..;/etc/passwd',
|
|
99
|
+
'../.../.../.../etc/passwd',
|
|
100
|
+
'/....//....//etc/passwd',
|
|
101
|
+
'..%00/..%00/..%00/etc/passwd',
|
|
102
|
+
];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get common XSS payloads for testing
|
|
106
|
+
*/
|
|
107
|
+
export function getXssPayloads() {
|
|
108
|
+
return [
|
|
109
|
+
'<script>alert(1)</script>',
|
|
110
|
+
'"><script>alert(1)</script>',
|
|
111
|
+
"javascript:alert('XSS')",
|
|
112
|
+
'<img src=x onerror=alert(1)>',
|
|
113
|
+
'<svg onload=alert(1)>',
|
|
114
|
+
'\'"><img src=x onerror=alert(1)>',
|
|
115
|
+
'<body onload=alert(1)>',
|
|
116
|
+
'<iframe src="javascript:alert(1)">',
|
|
117
|
+
'{{constructor.constructor("alert(1)")()}}',
|
|
118
|
+
'${alert(1)}',
|
|
119
|
+
'<input onfocus=alert(1) autofocus>',
|
|
120
|
+
'<marquee onstart=alert(1)>',
|
|
121
|
+
'<details open ontoggle=alert(1)>',
|
|
122
|
+
'<audio src=x onerror=alert(1)>',
|
|
123
|
+
];
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get special number edge cases for testing
|
|
127
|
+
*/
|
|
128
|
+
export function getSpecialNumbers() {
|
|
129
|
+
return [
|
|
130
|
+
0,
|
|
131
|
+
-0,
|
|
132
|
+
1,
|
|
133
|
+
-1,
|
|
134
|
+
Number.MAX_VALUE,
|
|
135
|
+
Number.MIN_VALUE,
|
|
136
|
+
Number.MAX_SAFE_INTEGER,
|
|
137
|
+
Number.MIN_SAFE_INTEGER,
|
|
138
|
+
Number.POSITIVE_INFINITY,
|
|
139
|
+
Number.NEGATIVE_INFINITY,
|
|
140
|
+
Number.NaN,
|
|
141
|
+
Number.EPSILON,
|
|
142
|
+
Math.PI,
|
|
143
|
+
Math.E,
|
|
144
|
+
0.1 + 0.2, // Floating point precision
|
|
145
|
+
2 ** 53, // Just beyond MAX_SAFE_INTEGER
|
|
146
|
+
-(2 ** 53), // Negative beyond MIN_SAFE_INTEGER
|
|
147
|
+
1e308, // Near MAX_VALUE
|
|
148
|
+
1e-308, // Near MIN_VALUE (denormalized)
|
|
149
|
+
0.0000001,
|
|
150
|
+
-0.0000001,
|
|
151
|
+
86400000, // 24 hours in ms (MAX_DURATION_MS)
|
|
152
|
+
86400001, // Just over MAX_DURATION_MS
|
|
153
|
+
];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Generate control character strings for testing
|
|
157
|
+
*/
|
|
158
|
+
export function getControlCharacterStrings() {
|
|
159
|
+
return [
|
|
160
|
+
'\x00', // null
|
|
161
|
+
'\x01', // start of heading
|
|
162
|
+
'\x07', // bell
|
|
163
|
+
'\x08', // backspace
|
|
164
|
+
'\x09', // tab
|
|
165
|
+
'\x0A', // line feed
|
|
166
|
+
'\x0B', // vertical tab
|
|
167
|
+
'\x0C', // form feed
|
|
168
|
+
'\x0D', // carriage return
|
|
169
|
+
'\x1B', // escape
|
|
170
|
+
'\x7F', // delete
|
|
171
|
+
'\x00\x00\x00', // multiple nulls
|
|
172
|
+
'test\x00hidden', // null byte injection
|
|
173
|
+
'test\x0Anewline', // embedded newline
|
|
174
|
+
'\r\n\r\n', // CRLF injection
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Generate regex patterns that could cause ReDoS
|
|
179
|
+
*/
|
|
180
|
+
export function getRedosPatterns() {
|
|
181
|
+
return [
|
|
182
|
+
'(a+)+$',
|
|
183
|
+
'([a-zA-Z]+)*',
|
|
184
|
+
'(a|aa)+',
|
|
185
|
+
'(a|a?)+',
|
|
186
|
+
'(.*a){25}',
|
|
187
|
+
'([a-z]+)+\\s',
|
|
188
|
+
'^(a+)+b$',
|
|
189
|
+
'(x+x+)+y',
|
|
190
|
+
'(a+)+ab',
|
|
191
|
+
'([^\\s]+)+\\s',
|
|
192
|
+
'(\\w+)+@',
|
|
193
|
+
'([a-zA-Z0-9]+)+\\.',
|
|
194
|
+
];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Run a function multiple times with random inputs
|
|
198
|
+
*/
|
|
199
|
+
export function fuzz(generator, fn, iterations = 100) {
|
|
200
|
+
let passed = 0;
|
|
201
|
+
let failed = 0;
|
|
202
|
+
const errors = [];
|
|
203
|
+
for (let i = 0; i < iterations; i++) {
|
|
204
|
+
const input = generator();
|
|
205
|
+
try {
|
|
206
|
+
fn(input);
|
|
207
|
+
passed++;
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
failed++;
|
|
211
|
+
errors.push({ input, error });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return { passed, failed, errors };
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=fuzz-generators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzz-generators.js","sourceRoot":"","sources":["../../src/test-helpers/fuzz-generators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,MAAM,MAAM,GAAG;QACb,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc;QAChC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,qBAAqB;QACvC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB;QACrC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;QAC7B,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS;QAC3B,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,kCAAkC;QACpD,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,+BAA+B;KACpD,CAAC;IAEF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,GAAW;IAC3D,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,GAAW;IAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,OAAO,GAAG;QACd,oBAAoB;QACpB,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAC9J,kBAAkB;QAClB,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QACzG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAC9J,GAAG,EAAE,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACrC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QAChH,GAAG,EAAE,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,aAAa;QACnB,GAAG,EAAE,CAAC,YAAY;QAClB,GAAG,EAAE,CAAC,YAAY;KACnB,CAAC;IAEF,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,0BAA0B;QAC1B,cAAc;QACd,wBAAwB;QACxB,kCAAkC;QAClC,WAAW;QACX,aAAa;QACb,UAAU;QACV,KAAK;QACL,eAAe;QACf,gCAAgC;QAChC,6BAA6B;QAC7B,WAAW;QACX,kBAAkB;QAClB,iBAAiB;QACjB,MAAM;QACN,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,qBAAqB;QACrB,4CAA4C;QAC5C,8BAA8B;QAC9B,6BAA6B;QAC7B,qCAAqC;QACrC,yCAAyC;QACzC,oCAAoC;QACpC,oBAAoB;QACpB,uBAAuB;QACvB,yBAAyB;QACzB,wBAAwB;QACxB,wBAAwB;QACxB,2BAA2B;QAC3B,yBAAyB;QACzB,8BAA8B;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,2BAA2B;QAC3B,6BAA6B;QAC7B,yBAAyB;QACzB,8BAA8B;QAC9B,uBAAuB;QACvB,kCAAkC;QAClC,wBAAwB;QACxB,oCAAoC;QACpC,2CAA2C;QAC3C,aAAa;QACb,oCAAoC;QACpC,4BAA4B;QAC5B,kCAAkC;QAClC,gCAAgC;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,CAAC;QACD,CAAC,CAAC;QACF,CAAC;QACD,CAAC,CAAC;QACF,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,gBAAgB;QACvB,MAAM,CAAC,gBAAgB;QACvB,MAAM,CAAC,iBAAiB;QACxB,MAAM,CAAC,iBAAiB;QACxB,MAAM,CAAC,GAAG;QACV,MAAM,CAAC,OAAO;QACd,IAAI,CAAC,EAAE;QACP,IAAI,CAAC,CAAC;QACN,GAAG,GAAG,GAAG,EAAE,2BAA2B;QACtC,CAAC,IAAI,EAAE,EAAK,+BAA+B;QAC3C,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,mCAAmC;QAC/C,KAAK,EAAO,iBAAiB;QAC7B,MAAM,EAAM,gCAAgC;QAC5C,SAAS;QACT,CAAC,SAAS;QACV,QAAQ,EAAI,mCAAmC;QAC/C,QAAQ,EAAI,4BAA4B;KACzC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,iBAAiB;QACjC,gBAAgB,EAAE,sBAAsB;QACxC,iBAAiB,EAAE,mBAAmB;QACtC,UAAU,EAAE,iBAAiB;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,QAAQ;QACR,cAAc;QACd,SAAS;QACT,SAAS;QACT,WAAW;QACX,cAAc;QACd,UAAU;QACV,UAAU;QACV,SAAS;QACT,eAAe;QACf,UAAU;QACV,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,SAAkB,EAClB,EAAsB,EACtB,UAAU,GAAG,GAAG;IAEhB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,MAAM,GAAwC,EAAE,CAAC;IAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,CAAC,KAAK,CAAC,CAAC;YACV,MAAM,EAAE,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test helpers index - re-exports all test utilities
|
|
3
|
+
*/
|
|
4
|
+
export { createTempDir, removeTempDir, getCleanupFailureCount, resetCleanupFailureCount, assertNoCleanupFailures, writeJsonlFile, writeJsonlFileAsync, getTestDate, getSharedTempDir, clearTempDir, clearTempDirAsync, removeSharedTempDir, cleanupAllSharedTempDirs, getIndexedFixture, removeIndexedFixture, cleanupAllIndexedFixtures, } from './file-utils.js';
|
|
5
|
+
export { type TraceDataStore, type LogDataStore, type MetricDataStore, createTraceBackend, createLogBackend, createMetricBackend, getTraceBackendOptions, getLogBackendOptions, getMetricBackendOptions, type MockDataStore, createMockBackend, getMockOptions, } from './mock-backends.js';
|
|
6
|
+
export { type ToolDefinition, validateToolDefinition, validateHandlerExport, } from './tool-validators.js';
|
|
7
|
+
export { validateBackendSchema, validateLimitSchema, validateDateRangeSchema, } from './schema-validators.js';
|
|
8
|
+
export { SIGNOZ_ENV_VARS, type EnvSnapshot, type HomeEnvScope, captureEnv, restoreEnv, clearSigNozEnv, setSigNozEnv, createEnvScope, setHomeEnv, restoreHomeEnv, } from './env-utils.js';
|
|
9
|
+
export { TEST_TIMESTAMP_BASE, TEST_TIMESTAMP, TEST_TIMESTAMP_ISO, TEST_DURATION, TEST_DURATION_MS, type MockSpan, type MockLog, type MockMetric, type MockLLMEvent, type MockEvaluation, resetBuilderCounters, createMockSpan, createMockSpans, createMockLog, createMockLogs, createMockMetric, createMockMetrics, createMockLLMEvent, createMockLLMEvents, createMockEvaluation, createMockEvaluations, createHttpSpan, createDbSpan, createErrorLog, createCorrelatedLog, createHistogramMetric, createLLMEventWithTokens, createScoredEvaluation, createLabeledEvaluation, } from './test-data-builders.js';
|
|
10
|
+
export { type MemFsInstance, createMemFs, writeJsonlMem, writeFileMem, readFileMem, readJsonlMem, readJsonlMemWithStats, streamJsonlMem, existsMem, mkdirMem, readdirMem, listFilesMem, listFilesInRangeMem, getTestDateMem, getSharedMemFs, resetSharedMemFs, removeSharedMemFs, cleanupAllSharedMemFs, } from './memfs-utils.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,WAAW,EAEX,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EAExB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EAEpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EAEvB,KAAK,aAAa,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,cAAc,EACnB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAEhB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EAErB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,aAAa,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test helpers index - re-exports all test utilities
|
|
3
|
+
*/
|
|
4
|
+
// File utilities
|
|
5
|
+
export { createTempDir, removeTempDir, getCleanupFailureCount, resetCleanupFailureCount, assertNoCleanupFailures, writeJsonlFile, writeJsonlFileAsync, getTestDate,
|
|
6
|
+
// Shared temp directory utilities (suite-level)
|
|
7
|
+
getSharedTempDir, clearTempDir, clearTempDirAsync, removeSharedTempDir, cleanupAllSharedTempDirs,
|
|
8
|
+
// Indexed fixture utilities
|
|
9
|
+
getIndexedFixture, removeIndexedFixture, cleanupAllIndexedFixtures, } from './file-utils.js';
|
|
10
|
+
// Mock backends
|
|
11
|
+
export {
|
|
12
|
+
// Type-specific factories (recommended)
|
|
13
|
+
createTraceBackend, createLogBackend, createMetricBackend, getTraceBackendOptions, getLogBackendOptions, getMetricBackendOptions, createMockBackend, getMockOptions, } from './mock-backends.js';
|
|
14
|
+
// Tool validators
|
|
15
|
+
export { validateToolDefinition, validateHandlerExport, } from './tool-validators.js';
|
|
16
|
+
// Schema validators
|
|
17
|
+
export { validateBackendSchema, validateLimitSchema, validateDateRangeSchema, } from './schema-validators.js';
|
|
18
|
+
// Environment utilities
|
|
19
|
+
export { SIGNOZ_ENV_VARS, captureEnv, restoreEnv, clearSigNozEnv, setSigNozEnv, createEnvScope, setHomeEnv, restoreHomeEnv, } from './env-utils.js';
|
|
20
|
+
// Test data builders
|
|
21
|
+
export {
|
|
22
|
+
// Constants
|
|
23
|
+
TEST_TIMESTAMP_BASE, TEST_TIMESTAMP, TEST_TIMESTAMP_ISO, TEST_DURATION, TEST_DURATION_MS,
|
|
24
|
+
// Core builders
|
|
25
|
+
resetBuilderCounters, createMockSpan, createMockSpans, createMockLog, createMockLogs, createMockMetric, createMockMetrics, createMockLLMEvent, createMockLLMEvents, createMockEvaluation, createMockEvaluations,
|
|
26
|
+
// Specialized builders
|
|
27
|
+
createHttpSpan, createDbSpan, createErrorLog, createCorrelatedLog, createHistogramMetric, createLLMEventWithTokens, createScoredEvaluation, createLabeledEvaluation, } from './test-data-builders.js';
|
|
28
|
+
// In-memory file system utilities (memfs)
|
|
29
|
+
export { createMemFs, writeJsonlMem, writeFileMem, readFileMem, readJsonlMem, readJsonlMemWithStats, streamJsonlMem, existsMem, mkdirMem, readdirMem, listFilesMem, listFilesInRangeMem, getTestDateMem, getSharedMemFs, resetSharedMemFs, removeSharedMemFs, cleanupAllSharedMemFs, } from './memfs-utils.js';
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,WAAW;AACX,gDAAgD;AAChD,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB;AACxB,4BAA4B;AAC5B,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,gBAAgB;AAChB,OAAO;AAKL,wCAAwC;AACxC,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EAGvB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EAEL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,wBAAwB;AACxB,OAAO,EACL,eAAe,EAGf,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB;AAOhB,gBAAgB;AAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB;AACrB,uBAAuB;AACvB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,OAAO,EAEL,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
|