diff --git a/wowup-electron/src/app/components/addon-install-button/addon-install-button.component.spec.ts b/wowup-electron/src/app/components/addon-install-button/addon-install-button.component.spec.ts index c824ae89..55873419 100644 --- a/wowup-electron/src/app/components/addon-install-button/addon-install-button.component.spec.ts +++ b/wowup-electron/src/app/components/addon-install-button/addon-install-button.component.spec.ts @@ -1,19 +1,67 @@ import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { TranslateCompiler, TranslateLoader, TranslateModule } from "@ngx-translate/core"; +import { HttpClient, HttpClientModule } from "@angular/common/http"; +import { TranslateMessageFormatCompiler } from "ngx-translate-messageformat-compiler"; import { AddonInstallButtonComponent } from "./addon-install-button.component"; +import { AddonService } from "../../services/addons/addon.service"; +import { SessionService } from "../../services/session/session.service"; +import { httpLoaderFactory } from "../../app.module"; +import { AddonSearchResult } from "../../models/wowup/addon-search-result"; +import { WowClientType } from "../../models/warcraft/wow-client-type"; +import { Subject } from "rxjs"; +import { AddonUpdateEvent } from "../../models/wowup/addon-update-event"; describe("AddonInstallButtonComponent", () => { let component: AddonInstallButtonComponent; let fixture: ComponentFixture; + let addonService: AddonService; + let addonServiceSpy: any; + let sessionService: SessionService; + let sessionServiceSpy: any; beforeEach(async () => { + addonServiceSpy = jasmine.createSpyObj("AddonService", { + isInstalled: () => false, + }, { + addonInstalled$ : new Subject().asObservable(), + }); + sessionServiceSpy = jasmine.createSpyObj("SessionService", [""], { + selectedClientType: WowClientType.Retail, + }); + await TestBed.configureTestingModule({ declarations: [AddonInstallButtonComponent], + imports: [ + HttpClientModule, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useFactory: httpLoaderFactory, + deps: [HttpClient], + }, + compiler: { + provide: TranslateCompiler, + useClass: TranslateMessageFormatCompiler, + }, + }) + ], + }).overrideComponent(AddonInstallButtonComponent, { + set: { + providers: [ + { provide: AddonService, useValue: addonServiceSpy }, + { provide: SessionService, useValue: sessionServiceSpy }, + ]}, }).compileComponents(); - }); - beforeEach(() => { fixture = TestBed.createComponent(AddonInstallButtonComponent); component = fixture.componentInstance; + addonService = fixture.debugElement.injector.get(AddonService); + sessionService = fixture.debugElement.injector.get(SessionService); + + component.addonSearchResult = { + externalId: "123123", + } as AddonSearchResult; + fixture.detectChanges(); }); diff --git a/wowup-electron/src/app/pages/home/home.component.spec.ts b/wowup-electron/src/app/pages/home/home.component.spec.ts index e9d49e42..55cc4a60 100644 --- a/wowup-electron/src/app/pages/home/home.component.spec.ts +++ b/wowup-electron/src/app/pages/home/home.component.spec.ts @@ -39,6 +39,9 @@ describe("HomeComponent", () => { isLinux : true, isMax: false, }); + wowUpServiceSpy = jasmine.createSpyObj("WowUpService", { + checkForAppUpdate : async () => null, + }) await TestBed.configureTestingModule({ declarations: [HomeComponent], diff --git a/wowup-electron/src/app/pages/options/options.component.spec.ts b/wowup-electron/src/app/pages/options/options.component.spec.ts index 67e73cdf..8f777eeb 100644 --- a/wowup-electron/src/app/pages/options/options.component.spec.ts +++ b/wowup-electron/src/app/pages/options/options.component.spec.ts @@ -6,6 +6,7 @@ import { HttpClient, HttpClientModule } from "@angular/common/http"; import { TranslateCompiler, TranslateLoader, TranslateModule } from "@ngx-translate/core"; import { httpLoaderFactory } from "../../app.module"; import { TranslateMessageFormatCompiler } from "ngx-translate-messageformat-compiler"; +import { CUSTOM_ELEMENTS_SCHEMA } from "@angular/core"; describe("OptionsComponent", () => { let component: OptionsComponent; @@ -40,6 +41,7 @@ describe("OptionsComponent", () => { useClass: TranslateMessageFormatCompiler, }, })], + schemas: [CUSTOM_ELEMENTS_SCHEMA], }).overrideComponent(OptionsComponent, { set: { providers: [