Select Git revision
spatial_mapping.csv
mocking.ts 1.96 KiB
/*
* Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { Type } from '@angular/core';
// Cannot find namespace 'jest'.ts(2503)
// Exported type alias 'Mock' has or is using private name 'jest'
export type Mock<T> = { [K in keyof T]: jest.Mock };
export function mock<T>(service: Type<T>): Mock<T> {
return <Mock<T>>Object.getOwnPropertyNames(service.prototype).reduce(
(mockValue, key) => ({
...mockValue,
[key]: jest.fn(),
}),
<any>{},
);
}
export function useFromMock<T>(mockToUse: Mock<T>): T {
return <T>(<any>mockToUse);
}
export function mockClass(clazz: any): Mock<any> {
return clazz as jest.Mocked<typeof clazz>; //NOSONAR
}
export function createSpy(clazz: any, functionName: string) {
return jest.spyOn(clazz.prototype, functionName);
}
export function mockGetValue(object: any, name: string, returnValue: any): void {
Object.defineProperty(object, name, {
get: jest.fn(() => returnValue),
});
}
export function mockWindowError(): any {
const errorHandler = jest.fn();
window.onerror = errorHandler;
return errorHandler;
}