⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.72
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
admin
/
View File Name :
AdminFeatureTogglesAPI.test.ts
import { BackendSrvRequest, config } from '@grafana/runtime'; import { getTogglesAPI } from './AdminFeatureTogglesAPI'; // implements @grafana/runtime/BackendSrv class MockSrv { constructor() { this.apiCalls = []; } apiCalls: Array<{ url: string; method: string; }>; async get( url: string, params?: BackendSrvRequest['params'], requestId?: BackendSrvRequest['requestId'], options?: Partial
) { this.apiCalls.push({ url: url, method: 'get', }); if (config.featureToggles.kubernetesFeatureToggles && url.indexOf('current') > -1) { return await { toggles: [] }; } return await {}; } async post(url: string, data?: unknown, options?: Partial
) { this.apiCalls.push({ url: url, method: 'post', }); return await {}; } async patch(url: string, data: unknown, options?: Partial
) { this.apiCalls.push({ url: url, method: 'patch', }); return await {}; } // these aren't needed for this test async put(url: string, data: unknown, options?: Partial
) { return await {}; } async delete(url: string, data?: unknown, options?: Partial
) { return await {}; } } const testBackendSrv = new MockSrv(); jest.mock('@grafana/runtime', () => ({ ...jest.requireActual('@grafana/runtime'), getBackendSrv: () => testBackendSrv, config: { featureToggles: { kubernetesFeatureToggles: false, grafanaAPIServerWithExperimentalAPIs: false, }, }, })); describe('AdminFeatureTogglesApi', () => { beforeEach(() => { jest.clearAllMocks(); testBackendSrv.apiCalls.length = 0; }); const originalToggles = { ...config.featureToggles }; afterAll(() => { config.featureToggles = originalToggles; }); it('uses the k8s api when the k8s toggles are on', async () => { config.featureToggles.kubernetesFeatureToggles = true; config.featureToggles.grafanaAPIServerWithExperimentalAPIs = true; const togglesApi = getTogglesAPI(); await togglesApi.getFeatureToggles(); await togglesApi.updateFeatureToggles([]); const expected = [ { method: 'get', url: '/apis/featuretoggle.grafana.app/v0alpha1/current', }, { method: 'patch', url: '/apis/featuretoggle.grafana.app/v0alpha1/current', }, ]; expect(testBackendSrv.apiCalls).toEqual(expect.arrayContaining(expected)); }); });