diff --git a/src/app/side-overviews/script-account-overview/script-account-overview.component.html b/src/app/side-overviews/script-account-overview/script-account-overview.component.html index c1b8260..d35d531 100644 --- a/src/app/side-overviews/script-account-overview/script-account-overview.component.html +++ b/src/app/side-overviews/script-account-overview/script-account-overview.component.html @@ -1,6 +1,6 @@ + (dblclick)="onOpenScriptAccount(scriptAccount)"> inventory_2{{scriptAccount.componentName}} diff --git a/src/app/side-overviews/script-account-overview/script-account-overview.component.spec.ts b/src/app/side-overviews/script-account-overview/script-account-overview.component.spec.ts index 979d4b2..fce1a6e 100644 --- a/src/app/side-overviews/script-account-overview/script-account-overview.component.spec.ts +++ b/src/app/side-overviews/script-account-overview/script-account-overview.component.spec.ts @@ -1,23 +1,43 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing'; -import { ScriptAccountOverviewComponent } from './script-account-overview.component'; +import {TranslateModule} from "@ngx-translate/core"; +import {RouterTestingModule} from "@angular/router/testing"; +import {ScriptAccountOverviewComponent} from "./script-account-overview.component"; +import exp from "node:constants"; +import {GameModel} from "../../game-model/GameModel"; -describe('ScriptAccountOverviewComponent', () => { +describe('ScriptAccountOverview', () => { let component: ScriptAccountOverviewComponent; let fixture: ComponentFixture; - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ScriptAccountOverviewComponent] - }) - .compileComponents(); - + beforeEach(waitForAsync(() => { + void TestBed.configureTestingModule({ + declarations: [ScriptAccountOverviewComponent], + imports: [TranslateModule.forRoot(), RouterTestingModule] + }).compileComponents(); + fixture = TestBed.createComponent(ScriptAccountOverviewComponent); component = fixture.componentInstance; + component.gameModel = new GameModel("GameModel") fixture.detectChanges(); - }); + })); it('should create', () => { expect(component).toBeTruthy(); }); + + it("Test ScriptAccount Creation", waitForAsync(() => { + component.onCreateNewScriptAccount(); + expect(component.gameModel!.scriptAccounts.length).toEqual(1) + component.gameModel!.removeScriptAccount(component.gameModel!.scriptAccounts[0]); + + jest.spyOn(component.openScriptAccountEmitter, 'emit'); + component.onCreateNewScriptAccount(); + fixture.detectChanges(); + + expect(component.openScriptAccountEmitter.emit).toHaveBeenCalledWith(component.gameModel!.scriptAccounts[0]); + + })) + + }); diff --git a/src/app/side-overviews/script-account-overview/script-account-overview.component.ts b/src/app/side-overviews/script-account-overview/script-account-overview.component.ts index f6672ad..496be51 100644 --- a/src/app/side-overviews/script-account-overview/script-account-overview.component.ts +++ b/src/app/side-overviews/script-account-overview/script-account-overview.component.ts @@ -1,4 +1,4 @@ -import {Component, EventEmitter, Input, Output} from '@angular/core'; +import {Component, EventEmitter, Input, NgZone, Output} from '@angular/core'; import {GameModel} from "../../game-model/GameModel"; import {ScriptAccount} from "../../game-model/scriptAccounts/ScriptAccount"; import {ElectronService} from "../../core/services"; @@ -12,7 +12,17 @@ export class ScriptAccountOverviewComponent { @Input("gameModel") gameModel: GameModel | undefined @Output("onOpenScriptAccount") openScriptAccountEmitter: EventEmitter = new EventEmitter(); - constructor(private electronService: ElectronService) { + constructor(private electronService: ElectronService, + private zone: NgZone) { + if(electronService.isElectron) { + this.electronService.ipcRenderer.on('context-menu', (event: any, message: string) => { + this.zone.run(() => { + if(message == "new-scriptaccount") { + this.onCreateNewScriptAccount() + } + }) + }) + } } onOpenScriptAccount(scriptAccount: ScriptAccount) { @@ -22,16 +32,7 @@ export class ScriptAccountOverviewComponent { onCreateNewScriptAccount() { const scriptAccount = new ScriptAccount("New ScriptAccount", ""); - this.gameModel?.addScriptAccount(scriptAccount); - return scriptAccount; - } - - onContextMenu(event: MouseEvent) { - if(this.electronService.isElectron) { - console.log("[DEBUG] [ScriptAccountOverviewComponent] App is executed in electron") - - } else { - console.log("[DEBUG] [ScriptAccountOverviewComponent] App is not executed in electron") - } + this.gameModel!.addScriptAccount(scriptAccount); + this.openScriptAccountEmitter.emit(scriptAccount); } }