Fix tests

This commit is contained in:
jliddev
2021-03-21 12:27:11 -05:00
parent 286dc355e3
commit 9dc3afdfdb
7 changed files with 88 additions and 19 deletions

View File

@@ -1,16 +1,75 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { HttpClient, HttpClientModule } from "@angular/common/http";
import { CUSTOM_ELEMENTS_SCHEMA } from "@angular/core";
import { ComponentFixture, TestBed } from "@angular/core/testing";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { NoopAnimationsModule } from "@angular/platform-browser/animations";
import { TranslateCompiler, TranslateLoader, TranslateModule } from "@ngx-translate/core";
import { TranslateMessageFormatCompiler } from "ngx-translate-messageformat-compiler";
import { httpLoaderFactory } from "../../app.module";
import { MatModule } from "../../mat-module";
import { AddonService } from "../../services/addons/addon.service";
import { IconService } from "../../services/icons/icon.service";
import { SessionService } from "../../services/session/session.service";
import { WarcraftInstallationService } from "../../services/warcraft/warcraft-installation.service";
import { overrideIconModule } from "../../tests/mock-mat-icon";
import { InstallFromProtocolDialogComponent } from './install-from-protocol-dialog.component';
import {
InstallFromProtocolDialogComponent,
InstallFromProtocolDialogComponentData,
} from "./install-from-protocol-dialog.component";
describe('InstallFromProtocolDialogComponent', () => {
describe("InstallFromProtocolDialogComponent", () => {
let component: InstallFromProtocolDialogComponent;
let fixture: ComponentFixture<InstallFromProtocolDialogComponent>;
let addonService: AddonService;
let sessionService: SessionService;
let warcraftInstallationService: WarcraftInstallationService;
let dialogModel: InstallFromProtocolDialogComponentData;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ InstallFromProtocolDialogComponent ]
})
.compileComponents();
addonService = jasmine.createSpyObj("AddonService", [""], {});
sessionService = jasmine.createSpyObj("SessionService", [""], {});
warcraftInstallationService = jasmine.createSpyObj("WarcraftInstallationService", [""], {});
dialogModel = { protocol: "" };
let testBed = TestBed.configureTestingModule({
declarations: [InstallFromProtocolDialogComponent],
imports: [
MatModule,
HttpClientModule,
NoopAnimationsModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: httpLoaderFactory,
deps: [HttpClient],
},
compiler: {
provide: TranslateCompiler,
useClass: TranslateMessageFormatCompiler,
},
}),
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [{ provide: MAT_DIALOG_DATA, useValue: dialogModel }],
});
testBed = overrideIconModule(testBed).overrideComponent(InstallFromProtocolDialogComponent, {
set: {
providers: [
{ provide: MatDialogRef, useValue: {} },
{ provide: AddonService, useValue: addonService },
{ provide: SessionService, useValue: sessionService },
{ provide: WarcraftInstallationService, useValue: warcraftInstallationService },
{ provide: IconService },
],
},
});
await testBed.compileComponents();
});
beforeEach(() => {
@@ -19,7 +78,7 @@ describe('InstallFromProtocolDialogComponent', () => {
fixture.detectChanges();
});
it('should create', () => {
it("should create", () => {
expect(component).toBeTruthy();
});
});

View File

@@ -1,14 +1,16 @@
import * as _ from "lodash";
import { from, of } from "rxjs";
import { catchError, delay, first, switchMap } from "rxjs/operators";
import { AfterViewInit, Component, Inject, OnInit } from "@angular/core";
import { FormControl } from "@angular/forms";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { ProtocolSearchResult } from "app/models/wowup/protocol-search-result";
import { WowInstallation } from "app/models/wowup/wow-installation";
import { SessionService } from "app/services/session/session.service";
import { WarcraftInstallationService } from "app/services/warcraft/warcraft-installation.service";
import * as _ from "lodash";
import { BehaviorSubject, from, of, Subject } from "rxjs";
import { catchError, delay, filter, first, map, switchMap } from "rxjs/operators";
import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
import { ProtocolSearchResult } from "../../models/wowup/protocol-search-result";
import { WowInstallation } from "../../models/wowup/wow-installation";
import { AddonService } from "../../services/addons/addon.service";
import { SessionService } from "../../services/session/session.service";
import { WarcraftInstallationService } from "../../services/warcraft/warcraft-installation.service";
export interface InstallFromProtocolDialogComponentData {
protocol: string;

View File

@@ -38,6 +38,7 @@ describe("OptionsAppSectionComponent", () => {
{
getZoomFactor: Promise.resolve(1.0),
onRendererEvent: () => undefined,
isDefaultProtocolClient: Promise.resolve(false),
},
{
isWin: false,

View File

@@ -1,4 +1,4 @@
import { WowClientType } from "common/warcraft/wow-client-type";
import { WowClientType } from "../../../common/warcraft/wow-client-type";
import { AddonSearchResult } from "./addon-search-result";
export interface ProtocolSearchResult extends AddonSearchResult {

View File

@@ -15,6 +15,7 @@ import { MatModule } from "../../mat-module";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { AddonScanError, AddonSyncError } from "../../errors";
import { WarcraftInstallationService } from "../../services/warcraft/warcraft-installation.service";
import { DialogFactory } from "../../services/dialog/dialog.factory";
describe("HomeComponent", () => {
let electronService: ElectronService;
@@ -22,8 +23,11 @@ describe("HomeComponent", () => {
let sessionService: SessionService;
let addonService: AddonService;
let warcraftInstallationService: WarcraftInstallationService;
let dialogFactory: DialogFactory;
beforeEach(async () => {
dialogFactory = jasmine.createSpyObj("DialogFactory", [""], {});
warcraftInstallationService = jasmine.createSpyObj("WarcraftInstallationService", [""], {
wowInstallations$: new BehaviorSubject<any[]>([]),
});
@@ -39,6 +43,7 @@ describe("HomeComponent", () => {
isLinux: true,
isMax: false,
powerMonitor$: new Observable(),
customProtocol$: new Observable(),
});
wowUpService = jasmine.createSpyObj("WowUpService", {
@@ -75,6 +80,7 @@ describe("HomeComponent", () => {
{ provide: SessionService, useValue: sessionService },
{ provide: AddonService, useValue: addonService },
{ provide: WowUpService, useValue: wowUpService },
{ provide: DialogFactory, useValue: dialogFactory },
{ provide: WarcraftInstallationService, useValue: warcraftInstallationService },
],
},

View File

@@ -12,16 +12,16 @@ import {
IPC_POWER_MONITOR_UNLOCK,
} from "../../../common/constants";
import { AppConfig } from "../../../environments/environment";
import { InstallFromProtocolDialogComponent } from "../../components/install-from-protocol-dialog/install-from-protocol-dialog.component";
import { AddonScanError } from "../../errors";
import { WowInstallation } from "../../models/wowup/wow-installation";
import { ElectronService } from "../../services";
import { AddonService, ScanUpdate, ScanUpdateType } from "../../services/addons/addon.service";
import { DialogFactory } from "../../services/dialog/dialog.factory";
import { SessionService } from "../../services/session/session.service";
import { WarcraftInstallationService } from "../../services/warcraft/warcraft-installation.service";
import { WowUpService } from "../../services/wowup/wowup.service";
import { DialogFactory } from "../../services/dialog/dialog.factory";
import { getProtocol } from "../../utils/string.utils";
import { InstallFromProtocolDialogComponent } from "app/components/install-from-protocol-dialog/install-from-protocol-dialog.component";
@Component({
selector: "app-home",

View File

@@ -70,6 +70,7 @@ describe("MyAddonsComponent", () => {
selectedHomeTab$: new BehaviorSubject(0).asObservable(),
autoUpdateComplete$: new BehaviorSubject(0).asObservable(),
selectedClientType$: new BehaviorSubject(WowClientType.Retail).asObservable(),
targetFileInstallComplete$: new Subject<boolean>(),
addonsChanged$: new BehaviorSubject([]),
});
warcraftServiceSpy = jasmine.createSpyObj("WarcraftService", [""], {