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
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for in-memory file system utilities
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, after, beforeEach } from 'node:test';
|
|
5
|
+
import * as assert from 'node:assert';
|
|
6
|
+
import { createMemFs, writeJsonlMem, writeFileMem, readFileMem, readJsonlMem, readJsonlMemWithStats, streamJsonlMem, existsMem, mkdirMem, readdirMem, listFilesMem, listFilesInRangeMem, getTestDateMem, getSharedMemFs, resetSharedMemFs, removeSharedMemFs, cleanupAllSharedMemFs, } from './memfs-utils.js';
|
|
7
|
+
describe('memfs-utils', () => {
|
|
8
|
+
describe('createMemFs', () => {
|
|
9
|
+
it('should create isolated memfs instance', () => {
|
|
10
|
+
const mfs1 = createMemFs();
|
|
11
|
+
const mfs2 = createMemFs();
|
|
12
|
+
assert.ok(mfs1.dir !== mfs2.dir, 'Each instance should have unique directory');
|
|
13
|
+
assert.ok(mfs1.fs !== mfs2.fs, 'Each instance should have unique fs');
|
|
14
|
+
});
|
|
15
|
+
it('should create base directory on initialization', () => {
|
|
16
|
+
const mfs = createMemFs();
|
|
17
|
+
assert.ok(mfs.vol.existsSync(mfs.dir), 'Base directory should exist');
|
|
18
|
+
});
|
|
19
|
+
it('should support custom prefix', () => {
|
|
20
|
+
const mfs = createMemFs('custom');
|
|
21
|
+
assert.ok(mfs.dir.includes('custom'), 'Directory should include prefix');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('writeJsonlMem and readJsonlMem', () => {
|
|
25
|
+
let mfs;
|
|
26
|
+
beforeEach(() => {
|
|
27
|
+
mfs = createMemFs('jsonl');
|
|
28
|
+
});
|
|
29
|
+
it('should write and read JSONL data', () => {
|
|
30
|
+
const data = [
|
|
31
|
+
{ id: 1, name: 'first' },
|
|
32
|
+
{ id: 2, name: 'second' },
|
|
33
|
+
];
|
|
34
|
+
writeJsonlMem(mfs, 'test.jsonl', data);
|
|
35
|
+
const result = readJsonlMem(mfs, 'test.jsonl');
|
|
36
|
+
assert.strictEqual(result.length, 2);
|
|
37
|
+
assert.deepStrictEqual(result[0], { id: 1, name: 'first' });
|
|
38
|
+
assert.deepStrictEqual(result[1], { id: 2, name: 'second' });
|
|
39
|
+
});
|
|
40
|
+
it('should handle empty array', () => {
|
|
41
|
+
writeJsonlMem(mfs, 'empty.jsonl', []);
|
|
42
|
+
const result = readJsonlMem(mfs, 'empty.jsonl');
|
|
43
|
+
assert.strictEqual(result.length, 0);
|
|
44
|
+
});
|
|
45
|
+
it('should skip invalid JSON lines', () => {
|
|
46
|
+
writeFileMem(mfs, 'mixed.jsonl', '{"id":1}\ninvalid json\n{"id":2}');
|
|
47
|
+
const result = readJsonlMem(mfs, 'mixed.jsonl');
|
|
48
|
+
assert.strictEqual(result.length, 2);
|
|
49
|
+
assert.strictEqual(result[0].id, 1);
|
|
50
|
+
assert.strictEqual(result[1].id, 2);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('readJsonlMemWithStats', () => {
|
|
54
|
+
let mfs;
|
|
55
|
+
beforeEach(() => {
|
|
56
|
+
mfs = createMemFs('stats');
|
|
57
|
+
});
|
|
58
|
+
it('should track line statistics', () => {
|
|
59
|
+
writeFileMem(mfs, 'test.jsonl', '{"id":1}\n\ninvalid\n{"id":2}');
|
|
60
|
+
const { data, stats } = readJsonlMemWithStats(mfs, 'test.jsonl');
|
|
61
|
+
assert.strictEqual(data.length, 2);
|
|
62
|
+
assert.strictEqual(stats.totalLines, 4);
|
|
63
|
+
assert.strictEqual(stats.emptyLines, 1);
|
|
64
|
+
assert.strictEqual(stats.skippedLines, 1);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('streamJsonlMem', () => {
|
|
68
|
+
let mfs;
|
|
69
|
+
beforeEach(() => {
|
|
70
|
+
mfs = createMemFs('stream');
|
|
71
|
+
});
|
|
72
|
+
it('should stream JSONL data', async () => {
|
|
73
|
+
const data = [
|
|
74
|
+
{ id: 1, value: 'a' },
|
|
75
|
+
{ id: 2, value: 'b' },
|
|
76
|
+
{ id: 3, value: 'c' },
|
|
77
|
+
];
|
|
78
|
+
writeJsonlMem(mfs, 'stream.jsonl', data);
|
|
79
|
+
const results = [];
|
|
80
|
+
for await (const item of streamJsonlMem(mfs, 'stream.jsonl')) {
|
|
81
|
+
results.push(item);
|
|
82
|
+
}
|
|
83
|
+
assert.strictEqual(results.length, 3);
|
|
84
|
+
assert.deepStrictEqual(results, data);
|
|
85
|
+
});
|
|
86
|
+
it('should skip invalid lines when streaming', async () => {
|
|
87
|
+
writeFileMem(mfs, 'mixed.jsonl', '{"id":1}\nbad line\n{"id":2}');
|
|
88
|
+
const results = [];
|
|
89
|
+
for await (const item of streamJsonlMem(mfs, 'mixed.jsonl')) {
|
|
90
|
+
results.push(item);
|
|
91
|
+
}
|
|
92
|
+
assert.strictEqual(results.length, 2);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe('file operations', () => {
|
|
96
|
+
let mfs;
|
|
97
|
+
beforeEach(() => {
|
|
98
|
+
mfs = createMemFs('fileops');
|
|
99
|
+
});
|
|
100
|
+
it('should check file existence', () => {
|
|
101
|
+
assert.strictEqual(existsMem(mfs, 'nonexistent.txt'), false);
|
|
102
|
+
writeFileMem(mfs, 'exists.txt', 'content');
|
|
103
|
+
assert.strictEqual(existsMem(mfs, 'exists.txt'), true);
|
|
104
|
+
});
|
|
105
|
+
it('should create subdirectories', () => {
|
|
106
|
+
mkdirMem(mfs, 'subdir/nested');
|
|
107
|
+
writeFileMem(mfs, 'subdir/nested/file.txt', 'nested content');
|
|
108
|
+
const content = readFileMem(mfs, 'subdir/nested/file.txt');
|
|
109
|
+
assert.strictEqual(content, 'nested content');
|
|
110
|
+
});
|
|
111
|
+
it('should list directory contents', () => {
|
|
112
|
+
writeFileMem(mfs, 'file1.txt', 'a');
|
|
113
|
+
writeFileMem(mfs, 'file2.txt', 'b');
|
|
114
|
+
mkdirMem(mfs, 'subdir');
|
|
115
|
+
const files = readdirMem(mfs);
|
|
116
|
+
assert.ok(files.includes('file1.txt'));
|
|
117
|
+
assert.ok(files.includes('file2.txt'));
|
|
118
|
+
assert.ok(files.includes('subdir'));
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('listFilesMem', () => {
|
|
122
|
+
let mfs;
|
|
123
|
+
beforeEach(() => {
|
|
124
|
+
mfs = createMemFs('listfiles');
|
|
125
|
+
});
|
|
126
|
+
it('should list files matching prefix', () => {
|
|
127
|
+
writeFileMem(mfs, 'traces-2026-01-28.jsonl', '{}');
|
|
128
|
+
writeFileMem(mfs, 'traces-2026-01-29.jsonl', '{}');
|
|
129
|
+
writeFileMem(mfs, 'logs-2026-01-28.jsonl', '{}');
|
|
130
|
+
const traces = listFilesMem(mfs, 'traces-');
|
|
131
|
+
assert.strictEqual(traces.length, 2);
|
|
132
|
+
assert.ok(traces.includes('traces-2026-01-28.jsonl'));
|
|
133
|
+
assert.ok(traces.includes('traces-2026-01-29.jsonl'));
|
|
134
|
+
const logs = listFilesMem(mfs, 'logs-');
|
|
135
|
+
assert.strictEqual(logs.length, 1);
|
|
136
|
+
});
|
|
137
|
+
it('should return sorted files', () => {
|
|
138
|
+
writeFileMem(mfs, 'traces-2026-01-31.jsonl', '{}');
|
|
139
|
+
writeFileMem(mfs, 'traces-2026-01-28.jsonl', '{}');
|
|
140
|
+
writeFileMem(mfs, 'traces-2026-01-30.jsonl', '{}');
|
|
141
|
+
const traces = listFilesMem(mfs, 'traces-');
|
|
142
|
+
assert.deepStrictEqual(traces, [
|
|
143
|
+
'traces-2026-01-28.jsonl',
|
|
144
|
+
'traces-2026-01-30.jsonl',
|
|
145
|
+
'traces-2026-01-31.jsonl',
|
|
146
|
+
]);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe('listFilesInRangeMem', () => {
|
|
150
|
+
let mfs;
|
|
151
|
+
beforeEach(() => {
|
|
152
|
+
mfs = createMemFs('daterange');
|
|
153
|
+
writeFileMem(mfs, 'traces-2026-01-28.jsonl', '{}');
|
|
154
|
+
writeFileMem(mfs, 'traces-2026-01-29.jsonl', '{}');
|
|
155
|
+
writeFileMem(mfs, 'traces-2026-01-30.jsonl', '{}');
|
|
156
|
+
writeFileMem(mfs, 'traces-2026-01-31.jsonl', '{}');
|
|
157
|
+
});
|
|
158
|
+
it('should filter by date range', () => {
|
|
159
|
+
const files = listFilesInRangeMem(mfs, 'traces', '2026-01-29', '2026-01-30');
|
|
160
|
+
assert.strictEqual(files.length, 2);
|
|
161
|
+
assert.ok(files[0].includes('2026-01-29'));
|
|
162
|
+
assert.ok(files[1].includes('2026-01-30'));
|
|
163
|
+
});
|
|
164
|
+
it('should return all files when no date range', () => {
|
|
165
|
+
const files = listFilesInRangeMem(mfs, 'traces');
|
|
166
|
+
assert.strictEqual(files.length, 4);
|
|
167
|
+
});
|
|
168
|
+
it('should filter by start date only', () => {
|
|
169
|
+
const files = listFilesInRangeMem(mfs, 'traces', '2026-01-30');
|
|
170
|
+
assert.strictEqual(files.length, 2);
|
|
171
|
+
});
|
|
172
|
+
it('should filter by end date only', () => {
|
|
173
|
+
const files = listFilesInRangeMem(mfs, 'traces', undefined, '2026-01-29');
|
|
174
|
+
assert.strictEqual(files.length, 2);
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
describe('reset', () => {
|
|
178
|
+
it('should clear all files on reset', () => {
|
|
179
|
+
const mfs = createMemFs('reset');
|
|
180
|
+
writeFileMem(mfs, 'file1.txt', 'a');
|
|
181
|
+
writeFileMem(mfs, 'file2.txt', 'b');
|
|
182
|
+
assert.strictEqual(readdirMem(mfs).length, 2);
|
|
183
|
+
mfs.reset();
|
|
184
|
+
assert.strictEqual(readdirMem(mfs).length, 0);
|
|
185
|
+
assert.ok(mfs.vol.existsSync(mfs.dir), 'Base directory should still exist');
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
describe('shared memfs instances', () => {
|
|
189
|
+
const SUITE_ID = 'test-shared-suite';
|
|
190
|
+
after(() => {
|
|
191
|
+
removeSharedMemFs(SUITE_ID);
|
|
192
|
+
});
|
|
193
|
+
it('should return same instance for same suite ID', () => {
|
|
194
|
+
const mfs1 = getSharedMemFs(SUITE_ID);
|
|
195
|
+
const mfs2 = getSharedMemFs(SUITE_ID);
|
|
196
|
+
assert.strictEqual(mfs1, mfs2);
|
|
197
|
+
});
|
|
198
|
+
it('should reset shared instance files', () => {
|
|
199
|
+
const mfs = getSharedMemFs(SUITE_ID);
|
|
200
|
+
writeFileMem(mfs, 'shared.txt', 'content');
|
|
201
|
+
assert.ok(existsMem(mfs, 'shared.txt'));
|
|
202
|
+
resetSharedMemFs(SUITE_ID);
|
|
203
|
+
assert.strictEqual(existsMem(mfs, 'shared.txt'), false);
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
describe('getTestDateMem', () => {
|
|
207
|
+
it('should return date in YYYY-MM-DD format', () => {
|
|
208
|
+
const date = getTestDateMem();
|
|
209
|
+
assert.match(date, /^\d{4}-\d{2}-\d{2}$/);
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
describe('cleanupAllSharedMemFs', () => {
|
|
213
|
+
it('should clear all shared instances', () => {
|
|
214
|
+
getSharedMemFs('suite1');
|
|
215
|
+
getSharedMemFs('suite2');
|
|
216
|
+
cleanupAllSharedMemFs();
|
|
217
|
+
// After cleanup, getting same IDs should create new instances
|
|
218
|
+
const newMfs = getSharedMemFs('suite1');
|
|
219
|
+
assert.ok(newMfs, 'Should be able to create new instance after cleanup');
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
describe('memfs-utils: realistic test patterns', () => {
|
|
224
|
+
describe('trace data pattern', () => {
|
|
225
|
+
let mfs;
|
|
226
|
+
beforeEach(() => {
|
|
227
|
+
mfs = createMemFs('traces');
|
|
228
|
+
});
|
|
229
|
+
it('should handle trace span data', () => {
|
|
230
|
+
const today = getTestDateMem();
|
|
231
|
+
const spans = [
|
|
232
|
+
{
|
|
233
|
+
traceId: 'trace1',
|
|
234
|
+
spanId: 'span1',
|
|
235
|
+
name: 'http-request',
|
|
236
|
+
startTime: [1700000000, 0],
|
|
237
|
+
attributes: { 'http.method': 'GET' },
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
traceId: 'trace1',
|
|
241
|
+
spanId: 'span2',
|
|
242
|
+
name: 'db-query',
|
|
243
|
+
startTime: [1700000001, 0],
|
|
244
|
+
attributes: { 'db.system': 'postgres' },
|
|
245
|
+
},
|
|
246
|
+
];
|
|
247
|
+
writeJsonlMem(mfs, `traces-${today}.jsonl`, spans);
|
|
248
|
+
const loaded = readJsonlMem(mfs, `traces-${today}.jsonl`);
|
|
249
|
+
assert.strictEqual(loaded.length, 2);
|
|
250
|
+
assert.strictEqual(loaded[0].traceId, 'trace1');
|
|
251
|
+
assert.strictEqual(loaded[1].name, 'db-query');
|
|
252
|
+
});
|
|
253
|
+
it('should handle trace data filtering pattern', async () => {
|
|
254
|
+
const spans = Array.from({ length: 100 }, (_, i) => ({
|
|
255
|
+
traceId: `trace-${i % 10}`,
|
|
256
|
+
spanId: `span-${i}`,
|
|
257
|
+
name: i % 2 === 0 ? 'http-request' : 'db-query',
|
|
258
|
+
startTime: [1700000000 + i, 0],
|
|
259
|
+
}));
|
|
260
|
+
writeJsonlMem(mfs, 'traces-2026-01-31.jsonl', spans);
|
|
261
|
+
// Simulate filtering by traceId using streaming
|
|
262
|
+
const filteredSpans = [];
|
|
263
|
+
for await (const span of streamJsonlMem(mfs, 'traces-2026-01-31.jsonl')) {
|
|
264
|
+
if (span.traceId === 'trace-5') {
|
|
265
|
+
filteredSpans.push(span);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
assert.strictEqual(filteredSpans.length, 10);
|
|
269
|
+
assert.ok(filteredSpans.every(s => s.traceId === 'trace-5'));
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
describe('log data pattern', () => {
|
|
273
|
+
let mfs;
|
|
274
|
+
beforeEach(() => {
|
|
275
|
+
mfs = createMemFs('logs');
|
|
276
|
+
});
|
|
277
|
+
it('should handle log record data', () => {
|
|
278
|
+
const logs = [
|
|
279
|
+
{ timestamp: '2026-01-31T10:00:00Z', severityText: 'INFO', body: 'Application started' },
|
|
280
|
+
{ timestamp: '2026-01-31T10:00:01Z', severityText: 'ERROR', body: 'Connection failed' },
|
|
281
|
+
];
|
|
282
|
+
writeJsonlMem(mfs, 'logs-2026-01-31.jsonl', logs);
|
|
283
|
+
const loaded = readJsonlMem(mfs, 'logs-2026-01-31.jsonl');
|
|
284
|
+
assert.strictEqual(loaded.length, 2);
|
|
285
|
+
assert.strictEqual(loaded[1].severityText, 'ERROR');
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
describe('index data pattern', () => {
|
|
289
|
+
let mfs;
|
|
290
|
+
beforeEach(() => {
|
|
291
|
+
mfs = createMemFs('index');
|
|
292
|
+
});
|
|
293
|
+
it('should handle index file storage', () => {
|
|
294
|
+
// Simulate index structure
|
|
295
|
+
const index = {
|
|
296
|
+
version: 1,
|
|
297
|
+
sourceFile: '/path/to/traces.jsonl',
|
|
298
|
+
sourceMtime: Date.now(),
|
|
299
|
+
entries: [
|
|
300
|
+
{ lineNumber: 1, timestamp: 1700000000000, traceId: 'trace1', spanName: 'op1' },
|
|
301
|
+
{ lineNumber: 2, timestamp: 1700000001000, traceId: 'trace2', spanName: 'op2' },
|
|
302
|
+
],
|
|
303
|
+
};
|
|
304
|
+
writeFileMem(mfs, 'traces.jsonl.idx', JSON.stringify(index));
|
|
305
|
+
const loaded = JSON.parse(readFileMem(mfs, 'traces.jsonl.idx'));
|
|
306
|
+
assert.strictEqual(loaded.version, 1);
|
|
307
|
+
assert.strictEqual(loaded.entries.length, 2);
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
describe('multi-file query pattern', () => {
|
|
311
|
+
let mfs;
|
|
312
|
+
beforeEach(() => {
|
|
313
|
+
mfs = createMemFs('multifile');
|
|
314
|
+
// Create files for multiple dates
|
|
315
|
+
for (let day = 28; day <= 31; day++) {
|
|
316
|
+
const date = `2026-01-${day}`;
|
|
317
|
+
const spans = [{ traceId: `trace-${day}`, spanId: 's1', name: 'op', startTime: [1700000000, 0] }];
|
|
318
|
+
writeJsonlMem(mfs, `traces-${date}.jsonl`, spans);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
it('should query across date range', async () => {
|
|
322
|
+
const files = listFilesInRangeMem(mfs, 'traces', '2026-01-29', '2026-01-30');
|
|
323
|
+
assert.strictEqual(files.length, 2);
|
|
324
|
+
// Aggregate results from all files
|
|
325
|
+
const allSpans = [];
|
|
326
|
+
for (const file of files) {
|
|
327
|
+
const filename = file.split('/').pop();
|
|
328
|
+
for await (const span of streamJsonlMem(mfs, filename)) {
|
|
329
|
+
allSpans.push(span);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
assert.strictEqual(allSpans.length, 2);
|
|
333
|
+
assert.ok(allSpans.some(s => s.traceId === 'trace-29'));
|
|
334
|
+
assert.ok(allSpans.some(s => s.traceId === 'trace-30'));
|
|
335
|
+
});
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
//# sourceMappingURL=memfs-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memfs-utils.test.js","sourceRoot":"","sources":["../../src/test-helpers/memfs-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,136 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared mock backend factories for testing
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe factory functions for creating mock TelemetryBackend instances.
|
|
5
|
+
* Uses discriminated unions and type-specific stores to avoid unsafe type assertions.
|
|
3
6
|
*/
|
|
4
|
-
import type { TelemetryBackend } from '../backends/index.js';
|
|
7
|
+
import type { TelemetryBackend, TraceSpan, LogRecord, MetricDataPoint, LLMEvent, EvaluationResult } from '../backends/index.js';
|
|
5
8
|
/**
|
|
6
|
-
*
|
|
9
|
+
* Type-safe store for trace spans
|
|
10
|
+
*/
|
|
11
|
+
export interface TraceDataStore {
|
|
12
|
+
local: TraceSpan[];
|
|
13
|
+
signoz: TraceSpan[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type-safe store for log records
|
|
17
|
+
*/
|
|
18
|
+
export interface LogDataStore {
|
|
19
|
+
local: LogRecord[];
|
|
20
|
+
signoz: LogRecord[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Type-safe store for metric data points
|
|
24
|
+
*/
|
|
25
|
+
export interface MetricDataStore {
|
|
26
|
+
local: MetricDataPoint[];
|
|
27
|
+
signoz: MetricDataPoint[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Type-safe store for LLM events
|
|
31
|
+
*/
|
|
32
|
+
export interface LLMEventDataStore {
|
|
33
|
+
local: LLMEvent[];
|
|
34
|
+
signoz: LLMEvent[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Type-safe store for evaluation results
|
|
38
|
+
*/
|
|
39
|
+
export interface EvaluationDataStore {
|
|
40
|
+
local: EvaluationResult[];
|
|
41
|
+
signoz: EvaluationResult[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Generic mock data store for local and signoz backends
|
|
45
|
+
* @deprecated Use type-specific stores (TraceDataStore, LogDataStore, MetricDataStore) for better type safety
|
|
7
46
|
*/
|
|
8
47
|
export interface MockDataStore<T> {
|
|
9
48
|
local: T[];
|
|
10
49
|
signoz: T[];
|
|
11
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a type-safe mock backend for trace data
|
|
53
|
+
* @param store - Type-safe trace data store
|
|
54
|
+
* @param source - Which source to read from ('local' or 'signoz')
|
|
55
|
+
*/
|
|
56
|
+
export declare function createTraceBackend(store: TraceDataStore, source: 'local' | 'signoz'): TelemetryBackend;
|
|
57
|
+
/**
|
|
58
|
+
* Create a type-safe mock backend for log data
|
|
59
|
+
* @param store - Type-safe log data store
|
|
60
|
+
* @param source - Which source to read from ('local' or 'signoz')
|
|
61
|
+
*/
|
|
62
|
+
export declare function createLogBackend(store: LogDataStore, source: 'local' | 'signoz'): TelemetryBackend;
|
|
63
|
+
/**
|
|
64
|
+
* Create a type-safe mock backend for metric data
|
|
65
|
+
* @param store - Type-safe metric data store
|
|
66
|
+
* @param source - Which source to read from ('local' or 'signoz')
|
|
67
|
+
*/
|
|
68
|
+
export declare function createMetricBackend(store: MetricDataStore, source: 'local' | 'signoz'): TelemetryBackend;
|
|
69
|
+
/**
|
|
70
|
+
* Get type-safe mock options for trace backends
|
|
71
|
+
* @param store - Type-safe trace data store
|
|
72
|
+
*/
|
|
73
|
+
export declare function getTraceBackendOptions(store: TraceDataStore): {
|
|
74
|
+
localBackend: TelemetryBackend;
|
|
75
|
+
signozBackend: TelemetryBackend;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Get type-safe mock options for log backends
|
|
79
|
+
* @param store - Type-safe log data store
|
|
80
|
+
*/
|
|
81
|
+
export declare function getLogBackendOptions(store: LogDataStore): {
|
|
82
|
+
localBackend: TelemetryBackend;
|
|
83
|
+
signozBackend: TelemetryBackend;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Get type-safe mock options for metric backends
|
|
87
|
+
* @param store - Type-safe metric data store
|
|
88
|
+
*/
|
|
89
|
+
export declare function getMetricBackendOptions(store: MetricDataStore): {
|
|
90
|
+
localBackend: TelemetryBackend;
|
|
91
|
+
signozBackend: TelemetryBackend;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Create a type-safe mock backend for LLM event data
|
|
95
|
+
* @param store - Type-safe LLM event data store
|
|
96
|
+
* @param source - Which source to read from ('local' or 'signoz')
|
|
97
|
+
*/
|
|
98
|
+
export declare function createLLMEventBackend(store: LLMEventDataStore, source: 'local' | 'signoz'): TelemetryBackend;
|
|
99
|
+
/**
|
|
100
|
+
* Create a type-safe mock backend for evaluation data
|
|
101
|
+
* @param store - Type-safe evaluation data store
|
|
102
|
+
* @param source - Which source to read from ('local' or 'signoz')
|
|
103
|
+
*/
|
|
104
|
+
export declare function createEvaluationBackend(store: EvaluationDataStore, source: 'local' | 'signoz'): TelemetryBackend;
|
|
105
|
+
/**
|
|
106
|
+
* Get type-safe mock options for LLM event backends
|
|
107
|
+
* @param store - Type-safe LLM event data store
|
|
108
|
+
*/
|
|
109
|
+
export declare function getLLMEventBackendOptions(store: LLMEventDataStore): {
|
|
110
|
+
localBackend: TelemetryBackend;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Get type-safe mock options for evaluation backends
|
|
114
|
+
* @param store - Type-safe evaluation data store
|
|
115
|
+
*/
|
|
116
|
+
export declare function getEvaluationBackendOptions(store: EvaluationDataStore): {
|
|
117
|
+
localBackend: TelemetryBackend;
|
|
118
|
+
};
|
|
12
119
|
/**
|
|
13
120
|
* Create a mock TelemetryBackend that returns data from a mock store
|
|
121
|
+
* Uses runtime type guards to safely convert generic data to specific types.
|
|
122
|
+
*
|
|
14
123
|
* @param store - Mock data store with local and signoz arrays
|
|
15
124
|
* @param dataType - Type of data this backend returns
|
|
16
125
|
* @param source - Which source to read from ('local' or 'signoz')
|
|
126
|
+
* @deprecated Use type-specific factories (createTraceBackend, createLogBackend, createMetricBackend) for compile-time type safety
|
|
17
127
|
*/
|
|
18
128
|
export declare function createMockBackend<T>(store: MockDataStore<T>, dataType: 'traces' | 'logs' | 'metrics', source: 'local' | 'signoz'): TelemetryBackend;
|
|
19
129
|
/**
|
|
20
130
|
* Get mock options with both local and signoz backends
|
|
21
131
|
* @param store - Mock data store with local and signoz arrays
|
|
22
132
|
* @param dataType - Type of data these backends return
|
|
133
|
+
* @deprecated Use type-specific options (getTraceBackendOptions, getLogBackendOptions, getMetricBackendOptions) for compile-time type safety
|
|
23
134
|
*/
|
|
24
135
|
export declare function getMockOptions<T>(store: MockDataStore<T>, dataType: 'traces' | 'logs' | 'metrics'): {
|
|
25
136
|
localBackend: TelemetryBackend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-backends.d.ts","sourceRoot":"","sources":["../../src/test-helpers/mock-backends.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mock-backends.d.ts","sourceRoot":"","sources":["../../src/test-helpers/mock-backends.ts"],"names":[],"mappings":"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"}
|