diff --git a/src/core/public/ui_settings/ui_settings_service.test.ts b/src/core/public/ui_settings/ui_settings_service.test.ts index d47dbf4f80189d9..e3b62012d5dca8b 100644 --- a/src/core/public/ui_settings/ui_settings_service.test.ts +++ b/src/core/public/ui_settings/ui_settings_service.test.ts @@ -17,30 +17,38 @@ * under the License. */ +function mockClass( + module: string, + Class: { new (...args: any[]): T }, + setup: (instance: any, args: any[]) => void +) { + const MockClass = jest + .fn(function(this: any, ...args: any[]) { + setup(this, args); + }) + .mockName(`Mock${Class.name}`); + + jest.mock(module, () => ({ + [Class.name]: MockClass, + })); + + return MockClass; +} + // Mock the UiSettingsApi class import { UiSettingsApi } from './ui_settings_api'; -const MockUiSettingsApi = jest - .fn(function(this: any) { - this.stop = jest.fn(); - this.getLoadingCount$ = jest.fn().mockReturnValue({ - loadingCountObservable: true, - }); - }) - .mockName('MockUiSettingsApi'); -jest.mock('./ui_settings_api', () => ({ - UiSettingsApi: MockUiSettingsApi, -})); +const MockUiSettingsApi = mockClass('./ui_settings_api', UiSettingsApi, inst => { + inst.stop = jest.fn(); + inst.getLoadingCount$ = jest.fn().mockReturnValue({ + loadingCountObservable: true, + }); +}); // Mock the UiSettingsClient class import { UiSettingsClient } from './ui_settings_client'; -const MockUiSettingsClient = jest - .fn(function(this: any) { - this.stop = jest.fn(); - }) - .mockName('MockUiSettingsClient'); -jest.mock('./ui_settings_client', () => ({ - UiSettingsClient: MockUiSettingsClient, -})); +const MockUiSettingsClient = mockClass('./ui_settings_client', UiSettingsClient, inst => { + inst.stop = jest.fn(); +}); // Load the service import { UiSettingsService } from './ui_settings_service';