mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-08-17 15:08:31 +00:00
feat: Sentryバックエンドの自動計装を個別で無効化出来る仕組みを追加する (#17673)
* feat: Sentryバックエンドの自動計装を個別で無効化出来る仕組みを追加する * fix comment
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { describe, expect, test, vi } from 'vitest';
|
||||
import { buildSentryIntegrations } from '@/core/telemetry/adapters/SentryTelemetryAdapter.js';
|
||||
|
||||
type TestIntegration = Parameters<ReturnType<typeof buildSentryIntegrations>>[0][number];
|
||||
|
||||
function testIntegration(name: string): TestIntegration {
|
||||
return { name };
|
||||
}
|
||||
|
||||
describe('SentryTelemetryAdapter', () => {
|
||||
test('removes disabled integrations from Sentry defaults', () => {
|
||||
const integrations = buildSentryIntegrations({
|
||||
disabledIntegrations: ['Postgres'],
|
||||
enableNodeProfiling: false,
|
||||
});
|
||||
|
||||
const result = integrations([
|
||||
testIntegration('Http'),
|
||||
testIntegration('Postgres'),
|
||||
testIntegration('Redis'),
|
||||
]);
|
||||
|
||||
expect(result.map((integration: TestIntegration) => integration.name)).toEqual(['Http', 'Redis']);
|
||||
});
|
||||
|
||||
test('keeps profiling integration when enabled', () => {
|
||||
const integrations = buildSentryIntegrations({
|
||||
disabledIntegrations: [],
|
||||
enableNodeProfiling: true,
|
||||
nodeProfilingIntegration: () => testIntegration('ProfilingIntegration'),
|
||||
});
|
||||
|
||||
const result = integrations([
|
||||
testIntegration('Http'),
|
||||
]);
|
||||
|
||||
expect(result.map((integration: TestIntegration) => integration.name)).toEqual(['Http', 'ProfilingIntegration']);
|
||||
});
|
||||
|
||||
test('warns about unknown disabled integration names without removing defaults', () => {
|
||||
const warn = vi.fn();
|
||||
const integrations = buildSentryIntegrations({
|
||||
disabledIntegrations: ['Unknown'],
|
||||
enableNodeProfiling: false,
|
||||
warn,
|
||||
});
|
||||
|
||||
const result = integrations([
|
||||
testIntegration('Http'),
|
||||
]);
|
||||
|
||||
expect(result.map((integration: TestIntegration) => integration.name)).toEqual(['Http']);
|
||||
expect(warn).toHaveBeenCalledWith('Unknown Sentry integration configured in sentryForBackend.disabledIntegrations: Unknown');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user