diff --git a/src/testing/utils.ts b/src/testing/utils.ts index 6b7700f9e..a6ec2613b 100644 --- a/src/testing/utils.ts +++ b/src/testing/utils.ts @@ -15,12 +15,10 @@ import { AbstractType, Component, CUSTOM_ELEMENTS_SCHEMA, Type, ViewChild } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { Network } from '@ionic-native/network/ngx'; import { Observable, Subject } from 'rxjs'; -import { Platform } from '@ionic/angular'; import { CORE_SITE_SCHEMAS } from '@services/sites'; -import { CoreSingletonProxy } from '@singletons'; +import { CoreSingletonProxy, Network, Platform } from '@singletons'; import { CoreTextUtilsProvider } from '@services/utils/text'; import { TranslatePipeStub } from './stubs/pipes/translate'; @@ -36,6 +34,10 @@ type ServiceInjectionToken = AbstractType | Type | string; let testBedInitialized = false; const textUtils = new CoreTextUtilsProvider(); +const DEFAULT_SERVICE_SINGLETON_MOCKS: [CoreSingletonProxy, Record][] = [ + [Platform, mock({ is: () => false, ready: () => Promise.resolve(), resume: new Subject() })], + [Network, { onChange: () => new Observable() }], +]; async function renderAngularComponent(component: Type, config: RenderConfig): Promise> { config.declarations.push(component); @@ -86,12 +88,15 @@ function getDefaultDeclarations(): unknown[] { } function getDefaultProviders(): unknown[] { - const platformMock = mock({ is: () => false, ready: () => Promise.resolve(), resume: new Subject() }); - const networkMock = mock({ onChange: () => new Observable() }); + const serviceProviders = DEFAULT_SERVICE_SINGLETON_MOCKS.map( + ([singleton, mockInstance]) => ({ + provide: singleton.injectionToken, + useValue: mockInstance, + }), + ); return [ - { provide: Platform, useValue: platformMock }, - { provide: Network, useValue: networkMock }, + ...serviceProviders, { provide: CORE_SITE_SCHEMAS, multiple: true, useValue: [] }, ]; } @@ -175,6 +180,10 @@ export function mockSingleton( export function resetTestingEnvironment(): void { testBedInitialized = false; + + for (const [singleton, mockInstance] of DEFAULT_SERVICE_SINGLETON_MOCKS) { + mockSingleton(singleton, mockInstance); + } } export function getServiceInstance(injectionToken: ServiceInjectionToken): Record {