diff --git a/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.spec.ts b/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.spec.ts index 2e28f9b7..3572bb57 100644 --- a/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.spec.ts +++ b/wowup-electron/src/app/components/options-addon-section/options-addon-section.component.spec.ts @@ -1,18 +1,44 @@ +import { HttpClientModule } from "@angular/common/http"; import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { AddonService } from "../../services/addons/addon.service"; +import { WowUpService } from "../../services/wowup/wowup.service"; +import { createTranslateModule } from "../../utils/test.utils"; import { OptionsAddonSectionComponent } from "./options-addon-section.component"; describe("OptionsAddonSectionComponent", () => { let component: OptionsAddonSectionComponent; let fixture: ComponentFixture; + let wowUpServiceSpy: any; + let addonServiceSpy: any; beforeEach(async () => { + addonServiceSpy = jasmine.createSpyObj("AddonService", [""], { + getAddonProviderStates: () => [], + }); + + wowUpServiceSpy = jasmine.createSpyObj("WowUpService", [""], { + collapseToTray: false, + useHardwareAcceleration: false, + startWithSystem: false, + startMinimized: false, + currentLanguage: false, + }); + await TestBed.configureTestingModule({ declarations: [OptionsAddonSectionComponent], - }).compileComponents(); - }); + imports: [HttpClientModule, createTranslateModule()], + }) + .overrideComponent(OptionsAddonSectionComponent, { + set: { + providers: [ + { provide: AddonService, useValue: addonServiceSpy }, + { provide: WowUpService, useValue: wowUpServiceSpy }, + ], + }, + }) + .compileComponents(); - beforeEach(() => { fixture = TestBed.createComponent(OptionsAddonSectionComponent); component = fixture.componentInstance; fixture.detectChanges(); diff --git a/wowup-electron/src/app/components/options-app-section/options-app-section.component.spec.ts b/wowup-electron/src/app/components/options-app-section/options-app-section.component.spec.ts index d6803b16..73f54275 100644 --- a/wowup-electron/src/app/components/options-app-section/options-app-section.component.spec.ts +++ b/wowup-electron/src/app/components/options-app-section/options-app-section.component.spec.ts @@ -9,10 +9,10 @@ import { SessionService } from "../../services/session/session.service"; import { WowUpService } from "../../services/wowup/wowup.service"; import { ElectronService } from "../../services"; import { OptionsAppSectionComponent } from "./options-app-section.component"; -import { httpLoaderFactory } from "../../app.module"; import { BehaviorSubject } from "rxjs"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { MatModule } from "../../mat-module"; +import { createTranslateModule } from "../../utils/test.utils"; describe("OptionsAppSectionComponent", () => { let component: OptionsAppSectionComponent; @@ -30,11 +30,11 @@ describe("OptionsAppSectionComponent", () => { beforeEach(async () => { analyticsServiceSpy = jasmine.createSpyObj("AnalyticsService", [""], { - telemetryEnabled$: new BehaviorSubject(false).asObservable() + telemetryEnabled$: new BehaviorSubject(false).asObservable(), }); electronServiceSpy = jasmine.createSpyObj("ElectronService", [""], { - isWin : false, - isLinux : true, + isWin: false, + isLinux: true, isMac: false, }); wowUpServiceSpy = jasmine.createSpyObj("WowUpService", [""], { @@ -47,37 +47,22 @@ describe("OptionsAppSectionComponent", () => { await TestBed.configureTestingModule({ declarations: [OptionsAppSectionComponent], - providers: [ - MatDialog, - ElectronService, - ], - imports: [ - HttpClientModule, - MatModule, - BrowserAnimationsModule, - TranslateModule.forRoot({ - loader: { - provide: TranslateLoader, - useFactory: httpLoaderFactory, - deps: [HttpClient], - }, - compiler: { - provide: TranslateCompiler, - useClass: TranslateMessageFormatCompiler, - }, - }) - ], - }).overrideComponent(OptionsAppSectionComponent, { - set: { - providers: [ - MatDialog, - { provide: ElectronService, useValue: electronServiceSpy }, - { provide: WowUpService, useValue: wowUpServiceSpy }, - { provide: SessionService, useValue: sessionServiceSpy }, - { provide: FileService, useValue: fileServiceSpy }, - { provide: AnalyticsService, useValue: analyticsServiceSpy }, - ]}, - }).compileComponents(); + providers: [MatDialog, ElectronService], + imports: [HttpClientModule, MatModule, BrowserAnimationsModule, createTranslateModule()], + }) + .overrideComponent(OptionsAppSectionComponent, { + set: { + providers: [ + MatDialog, + { provide: ElectronService, useValue: electronServiceSpy }, + { provide: WowUpService, useValue: wowUpServiceSpy }, + { provide: SessionService, useValue: sessionServiceSpy }, + { provide: FileService, useValue: fileServiceSpy }, + { provide: AnalyticsService, useValue: analyticsServiceSpy }, + ], + }, + }) + .compileComponents(); fixture = TestBed.createComponent(OptionsAppSectionComponent); component = fixture.componentInstance; diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index 3c6bb7ff..e3c89c3e 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -1,5 +1,5 @@ import { Injectable } from "@angular/core"; -import { AddonProviderState } from "app/models/wowup/addon-provider-state"; +import { AddonProviderState } from "../../models/wowup/addon-provider-state"; import { AddonDependency } from "../../models/wowup/addon-dependency"; import { AddonDependencyType } from "../../models/wowup/addon-dependency-type"; import { AddonSearchResultDependency } from "../../models/wowup/addon-search-result-dependency"; diff --git a/wowup-electron/src/app/utils/test.utils.ts b/wowup-electron/src/app/utils/test.utils.ts new file mode 100644 index 00000000..9e3f7e5e --- /dev/null +++ b/wowup-electron/src/app/utils/test.utils.ts @@ -0,0 +1,22 @@ +import { HttpClient } from "@angular/common/http"; +import { TranslateCompiler, TranslateLoader, TranslateModule } from "@ngx-translate/core"; +import { TranslateHttpLoader } from "@ngx-translate/http-loader"; +import { TranslateMessageFormatCompiler } from "ngx-translate-messageformat-compiler"; + +export function testHttpLoaderFactory(http: HttpClient): TranslateHttpLoader { + return new TranslateHttpLoader(http, "./assets/i18n/", ".json"); +} + +export function createTranslateModule() { + return TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useFactory: testHttpLoaderFactory, + deps: [HttpClient], + }, + compiler: { + provide: TranslateCompiler, + useClass: TranslateMessageFormatCompiler, + }, + }); +} diff --git a/wowup-electron/src/constants.ts b/wowup-electron/src/constants.ts deleted file mode 100644 index e69de29b..00000000