import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing'; import { EditorComponent } from './editor.component'; import {ScriptAccount} from "../game-model/scriptAccounts/ScriptAccount"; import {TranslateModule} from "@ngx-translate/core"; import {RouterTestingModule} from "@angular/router/testing"; describe('EditorComponent', () => { let component: EditorComponent; let fixture: ComponentFixture; beforeEach(waitForAsync(() => { void TestBed.configureTestingModule({ declarations: [EditorComponent], imports: [TranslateModule.forRoot(), RouterTestingModule] }).compileComponents(); fixture = TestBed.createComponent(EditorComponent); component = fixture.componentInstance; fixture.detectChanges(); })); it('should create', () => { expect(component).toBeTruthy(); }); it("Test open ScriptAccount", waitForAsync (() => { const scriptAccount = new ScriptAccount("ScriptAccount", ""); component.openGameModelComponent(scriptAccount); expect(component.gameModelComponents.includes(scriptAccount)); expect(component.gameModelComponents.length).toEqual(1); component.openGameModelComponent(scriptAccount); expect(component.gameModelComponents.length).toEqual(1); })); it("Test close ScriptAccount", waitForAsync(() => { const scriptAccount = new ScriptAccount("ScriptAccount", ""); const scriptAccount2 = new ScriptAccount("ScriptAccount 2", ""); component.openGameModelComponent(scriptAccount); component.closeGameModelComponent(scriptAccount); expect(component.gameModelComponents.length).toEqual(0); component.openGameModelComponent(scriptAccount); component.openGameModelComponent(scriptAccount2); component.closeGameModelComponent(scriptAccount); expect(component.gameModelComponents.length).toEqual(1); expect(component.gameModelComponents.includes(scriptAccount2)); })) it("Test convert ModelComponent to ScriptAccount", waitForAsync(() => { const modelComponent = new ScriptAccount("test", ""); const scriptAccount = component.convertModelComponentToScriptAccount(modelComponent); expect(scriptAccount).toBeInstanceOf(ScriptAccount); })) });