-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy pathTelemetryExporterStub.ts
More file actions
65 lines (58 loc) · 1.72 KB
/
TelemetryExporterStub.ts
File metadata and controls
65 lines (58 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/**
* Copyright (c) 2025 Databricks Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { TelemetryMetric } from '../../../lib/telemetry/types';
/**
* Stub implementation of DatabricksTelemetryExporter for testing.
* Records exported metrics for verification in tests.
*/
export default class TelemetryExporterStub {
public exportedMetrics: TelemetryMetric[][] = [];
public exportCount = 0;
public shouldThrow = false;
public throwError: Error | null = null;
/**
* Stub export method that records metrics.
*/
async export(metrics: TelemetryMetric[]): Promise<void> {
this.exportCount++;
this.exportedMetrics.push([...metrics]);
if (this.shouldThrow && this.throwError) {
throw this.throwError;
}
}
/**
* Reset the stub state.
*/
reset(): void {
this.exportedMetrics = [];
this.exportCount = 0;
this.shouldThrow = false;
this.throwError = null;
}
/**
* Get all exported metrics flattened.
*/
getAllExportedMetrics(): TelemetryMetric[] {
return this.exportedMetrics.flat();
}
/**
* Configure stub to throw an error on export.
*/
throwOnExport(error: Error): void {
this.shouldThrow = true;
this.throwError = error;
}
}