mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-21 01:07:46 +00:00
feat(test): Increase test coverage across CLI and Core packages (#1089)
This commit is contained in:
72
packages/core/src/telemetry/telemetry.test.ts
Normal file
72
packages/core/src/telemetry/telemetry.test.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2025 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
||||
import {
|
||||
initializeTelemetry,
|
||||
shutdownTelemetry,
|
||||
isTelemetrySdkInitialized,
|
||||
} from './sdk.js';
|
||||
import { Config } from '../config/config.js';
|
||||
import { NodeSDK } from '@opentelemetry/sdk-node';
|
||||
import * as loggers from './loggers.js';
|
||||
|
||||
vi.mock('@opentelemetry/sdk-node');
|
||||
vi.mock('../config/config.js');
|
||||
vi.mock('./loggers.js');
|
||||
|
||||
describe('telemetry', () => {
|
||||
let mockConfig: Config;
|
||||
let mockNodeSdk: NodeSDK;
|
||||
|
||||
beforeEach(() => {
|
||||
vi.resetAllMocks();
|
||||
|
||||
mockConfig = new Config({
|
||||
sessionId: 'test-session-id',
|
||||
contentGeneratorConfig: {
|
||||
model: 'test-model',
|
||||
},
|
||||
targetDir: '/test/dir',
|
||||
debugMode: false,
|
||||
cwd: '/test/dir',
|
||||
});
|
||||
vi.spyOn(mockConfig, 'getTelemetryEnabled').mockReturnValue(true);
|
||||
vi.spyOn(mockConfig, 'getTelemetryOtlpEndpoint').mockReturnValue(
|
||||
'http://localhost:4317',
|
||||
);
|
||||
vi.spyOn(mockConfig, 'getSessionId').mockReturnValue('test-session-id');
|
||||
vi.spyOn(loggers, 'logCliConfiguration').mockImplementation(() => {});
|
||||
|
||||
mockNodeSdk = {
|
||||
start: vi.fn(),
|
||||
shutdown: vi.fn().mockResolvedValue(undefined),
|
||||
} as unknown as NodeSDK;
|
||||
vi.mocked(NodeSDK).mockImplementation(() => mockNodeSdk);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Ensure we shut down telemetry even if a test fails.
|
||||
if (isTelemetrySdkInitialized()) {
|
||||
await shutdownTelemetry();
|
||||
}
|
||||
});
|
||||
|
||||
it('should initialize the telemetry service', () => {
|
||||
initializeTelemetry(mockConfig);
|
||||
|
||||
expect(NodeSDK).toHaveBeenCalled();
|
||||
expect(mockNodeSdk.start).toHaveBeenCalled();
|
||||
expect(loggers.logCliConfiguration).toHaveBeenCalledWith(mockConfig);
|
||||
});
|
||||
|
||||
it('should shutdown the telemetry service', async () => {
|
||||
initializeTelemetry(mockConfig);
|
||||
await shutdownTelemetry();
|
||||
|
||||
expect(mockNodeSdk.shutdown).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user