MOBILE-4059 testing: Improve mockSingleton types
parent
4ca9a4ad7b
commit
0545d3a8c8
|
@ -63,7 +63,7 @@ function prepareStubs(config: Partial<CoreDatabaseConfiguration> = {}): [User[],
|
|||
});
|
||||
const table = new CoreDatabaseTableProxy<User>(config, database, 'users');
|
||||
|
||||
mockSingleton(CoreConfig, { isReady: () => Promise.resolve() });
|
||||
mockSingleton(CoreConfig, { ready: () => Promise.resolve() });
|
||||
|
||||
return [records, database, table];
|
||||
}
|
||||
|
|
|
@ -33,7 +33,15 @@ describe('CoreFormatTextDirective', () => {
|
|||
|
||||
beforeEach(() => {
|
||||
mockSingleton(CoreSites, { getSite: () => Promise.reject() });
|
||||
mockSingleton(CoreConfig, { get: (_, defaultValue) => defaultValue });
|
||||
mockSingleton(CoreConfig, {
|
||||
get(name, defaultValue) {
|
||||
if (defaultValue === undefined) {
|
||||
throw Error(`Default value not provided for '${name}'`);
|
||||
}
|
||||
|
||||
return Promise.resolve(defaultValue);
|
||||
},
|
||||
});
|
||||
mockSingleton(CoreFilter, { formatText: text => Promise.resolve(text) });
|
||||
mockSingleton(CoreFilterHelper, { getFiltersAndFormatText: text => Promise.resolve({ text, filters: [] }) });
|
||||
|
||||
|
@ -64,7 +72,7 @@ describe('CoreFormatTextDirective', () => {
|
|||
|
||||
it('should format text', async () => {
|
||||
// Arrange
|
||||
mockSingleton(CoreFilter, { formatText: () => 'Formatted text' });
|
||||
mockSingleton(CoreFilter, { formatText: () => Promise.resolve('Formatted text') });
|
||||
|
||||
// Act
|
||||
const { nativeElement } = await renderTemplate(
|
||||
|
@ -131,7 +139,7 @@ describe('CoreFormatTextDirective', () => {
|
|||
mockSingleton(CoreFilepool, { getSrcByUrl: () => Promise.resolve('file://local-path') });
|
||||
mockSingleton(CoreSites, {
|
||||
getSite: () => Promise.resolve(site),
|
||||
getCurrentSite: () => Promise.resolve(site),
|
||||
getCurrentSite: () => site,
|
||||
});
|
||||
|
||||
// Act
|
||||
|
|
|
@ -40,7 +40,7 @@ describe('CoreNavigator', () => {
|
|||
|
||||
router = mockSingleton(Router, { url: '/' });
|
||||
|
||||
mockSingleton(CoreSites, { getCurrentSiteId: () => 42, isLoggedIn: () => true });
|
||||
mockSingleton(CoreSites, { getCurrentSiteId: () => '42', isLoggedIn: () => true });
|
||||
mockSingleton(CoreMainMenu, { isMainMenuTab: path => Promise.resolve(currentMainMenuHandlers.includes(path)) });
|
||||
});
|
||||
|
||||
|
|
|
@ -183,8 +183,7 @@ export function mock<T>(
|
|||
return instance as T;
|
||||
}
|
||||
|
||||
export function mockSingleton<T>(singletonClass: CoreSingletonProxy<T>, instance: T): T;
|
||||
export function mockSingleton<T>(singletonClass: CoreSingletonProxy<unknown>, instance?: Record<string, unknown>): T;
|
||||
export function mockSingleton<T>(singletonClass: CoreSingletonProxy<T>, instance: T | Partial<T>): T;
|
||||
export function mockSingleton<T>(
|
||||
singletonClass: CoreSingletonProxy<unknown>,
|
||||
methods: string[],
|
||||
|
|
Loading…
Reference in New Issue