mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-04-07 18:44:13 +00:00
Unit test added
This commit is contained in:
parent
dd199b0058
commit
c15b00a6bf
@ -0,0 +1,44 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MatCheckboxModule, MatIconModule, MatToolbarModule, MatMenuModule } from '@angular/material';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { MockedActivatedRoute } from '../preferences.component.spec';
|
||||
import { BuiltInPreferencesComponent } from './built-in-preferences.component';
|
||||
|
||||
describe('BuiltInPreferencesComponent', () => {
|
||||
let component: BuiltInPreferencesComponent;
|
||||
let fixture: ComponentFixture<BuiltInPreferencesComponent>;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
}
|
||||
],
|
||||
declarations: [
|
||||
BuiltInPreferencesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(BuiltInPreferencesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should set correct server id', () => {
|
||||
expect(component.serverId).toBe('1');
|
||||
});
|
||||
});
|
@ -0,0 +1,85 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { CloudTemplate } from '../../../../../models/templates/cloud-template';
|
||||
import { CloudNodesAddTemplateComponent } from './cloud-nodes-add-template.component';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { TemplateMocksService } from '../../../../../services/template-mocks.service';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public addTemplate(server: Server, cloudTemplate: CloudTemplate) {
|
||||
return of(cloudTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('CloudNodesAddTemplateComponent', () => {
|
||||
let component: CloudNodesAddTemplateComponent;
|
||||
let fixture: ComponentFixture<CloudNodesAddTemplateComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService},
|
||||
{ provide: TemplateMocksService, useClass: TemplateMocksService }
|
||||
],
|
||||
declarations: [
|
||||
CloudNodesAddTemplateComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CloudNodesAddTemplateComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call add template', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as CloudTemplate));
|
||||
component.templateName = "sample name";
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when template name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as CloudTemplate));
|
||||
spyOn(mockedToasterService, 'error');
|
||||
component.templateName = "";
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).not.toHaveBeenCalled();
|
||||
expect(mockedToasterService.error).toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -1,8 +1,7 @@
|
||||
import { Component, OnInit } from "@angular/core";
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { TemplateMocksService } from '../../../../../services/template-mocks.service';
|
||||
@ -29,14 +28,8 @@ export class CloudNodesAddTemplateComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
});
|
||||
}
|
||||
|
@ -0,0 +1,75 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, MatTableModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { CloudTemplate } from '../../../../../models/templates/cloud-template';
|
||||
import { CloudNodesTemplateDetailsComponent } from './cloud-nodes-template-details.component';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public getTemplate(server: Server, template_id: string) {
|
||||
return of({ports_mapping: []} as CloudTemplate);
|
||||
}
|
||||
|
||||
public saveTemplate(server: Server, cloudTemplate: CloudTemplate) {
|
||||
return of(cloudTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('CloudNodesTemplateDetailsComponent', () => {
|
||||
let component: CloudNodesTemplateDetailsComponent;
|
||||
let fixture: ComponentFixture<CloudNodesTemplateDetailsComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, ReactiveFormsModule, MatTableModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService}
|
||||
],
|
||||
declarations: [
|
||||
CloudNodesTemplateDetailsComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CloudNodesTemplateDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call save template', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as CloudTemplate));
|
||||
|
||||
component.cloudNodeTemplate = {ports_mapping: []} as CloudTemplate;
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -0,0 +1,57 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { CloudTemplate } from '../../../../../models/templates/cloud-template';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { CloudNodesTemplatesComponent } from './cloud-nodes-templates.component';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public getTemplates(server: Server) {
|
||||
return of([{} as CloudTemplate]);
|
||||
}
|
||||
}
|
||||
|
||||
describe('CloudNodesTemplatesComponent', () => {
|
||||
let component: CloudNodesTemplatesComponent;
|
||||
let fixture: ComponentFixture<CloudNodesTemplatesComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService }
|
||||
],
|
||||
declarations: [
|
||||
CloudNodesTemplatesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CloudNodesTemplatesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -23,14 +23,8 @@ export class CloudNodesTemplatesComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
|
||||
this.builtInTemplatesService.getTemplates(this.server).subscribe((cloudNodesTemplates: CloudTemplate[]) => {
|
||||
|
@ -0,0 +1,99 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { TemplateMocksService } from '../../../../../services/template-mocks.service';
|
||||
import { EthernetHubTemplate } from '../../../../../models/templates/ethernet-hub-template';
|
||||
import { EthernetHubsAddTemplateComponent } from './ethernet-hubs-add-template.component';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public addTemplate(server: Server, ethernetHubTemplate: EthernetHubTemplate) {
|
||||
return of(ethernetHubTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('EthernetHubsAddTemplateComponent', () => {
|
||||
let component: EthernetHubsAddTemplateComponent;
|
||||
let fixture: ComponentFixture<EthernetHubsAddTemplateComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService},
|
||||
{ provide: TemplateMocksService, useClass: TemplateMocksService }
|
||||
],
|
||||
declarations: [
|
||||
EthernetHubsAddTemplateComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(EthernetHubsAddTemplateComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call add template', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
component.templateName = "sample name";
|
||||
component.numberOfPorts = 2;
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when template name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
spyOn(mockedToasterService, 'error');
|
||||
component.templateName = "";
|
||||
component.numberOfPorts = 2;
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).not.toHaveBeenCalled();
|
||||
expect(mockedToasterService.error).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when number of ports is missing', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
spyOn(mockedToasterService, 'error');
|
||||
component.templateName = "sample name";
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).not.toHaveBeenCalled();
|
||||
expect(mockedToasterService.error).toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -30,14 +30,8 @@ export class EthernetHubsAddTemplateComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
});
|
||||
}
|
||||
|
@ -0,0 +1,118 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, MatTableModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { EthernetHubTemplate } from '../../../../../models/templates/ethernet-hub-template';
|
||||
import { EthernetHubsTemplateDetailsComponent } from './ethernet-hubs-template-details.component';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public getTemplate(server: Server, template_id: string) {
|
||||
return of({ports_mapping: []} as EthernetHubTemplate);
|
||||
}
|
||||
|
||||
public saveTemplate(server: Server, cloudTemplate: EthernetHubTemplate) {
|
||||
return of(cloudTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('EthernetHubsTemplateDetailsComponent', () => {
|
||||
let component: EthernetHubsTemplateDetailsComponent;
|
||||
let fixture: ComponentFixture<EthernetHubsTemplateDetailsComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, ReactiveFormsModule, MatTableModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService}
|
||||
],
|
||||
declarations: [
|
||||
EthernetHubsTemplateDetailsComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(EthernetHubsTemplateDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call save template', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
component.numberOfPorts = 2;
|
||||
component.inputForm.controls['templateName'].setValue('template name');
|
||||
component.inputForm.controls['defaultName'].setValue('default name');
|
||||
component.inputForm.controls['symbol'].setValue('symbol');
|
||||
component.ethernetHubTemplate = {ports_mapping: []} as EthernetHubTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call save template when template name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
component.numberOfPorts = 2;
|
||||
component.inputForm.controls['templateName'].setValue('');
|
||||
component.inputForm.controls['defaultName'].setValue('default name');
|
||||
component.inputForm.controls['symbol'].setValue('symbol');
|
||||
component.ethernetHubTemplate = {ports_mapping: []} as EthernetHubTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call save template when default name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
component.numberOfPorts = 2;
|
||||
component.inputForm.controls['templateName'].setValue('template name');
|
||||
component.inputForm.controls['defaultName'].setValue('');
|
||||
component.inputForm.controls['symbol'].setValue('symbol');
|
||||
component.ethernetHubTemplate = {ports_mapping: []} as EthernetHubTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should call save template when symbol path is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetHubTemplate));
|
||||
component.numberOfPorts = 2;
|
||||
component.inputForm.controls['templateName'].setValue('template name');
|
||||
component.inputForm.controls['defaultName'].setValue('default name');
|
||||
component.inputForm.controls['symbol'].setValue('');
|
||||
component.ethernetHubTemplate = {ports_mapping: []} as EthernetHubTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -0,0 +1,57 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { EthernetHubTemplate } from '../../../../../models/templates/ethernet-hub-template';
|
||||
import { EthernetHubsTemplatesComponent } from './ethernet-hubs-templates.component';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public getTemplates(server: Server) {
|
||||
return of([{} as EthernetHubTemplate]);
|
||||
}
|
||||
}
|
||||
|
||||
describe('EthernetHubsTemplatesComponent', () => {
|
||||
let component: EthernetHubsTemplatesComponent;
|
||||
let fixture: ComponentFixture<EthernetHubsTemplatesComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService }
|
||||
],
|
||||
declarations: [
|
||||
EthernetHubsTemplatesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(EthernetHubsTemplatesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -23,14 +23,8 @@ export class EthernetHubsTemplatesComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
|
||||
this.builtInTemplatesService.getTemplates(this.server).subscribe((ethernetHubsTemplates: EthernetHubTemplate[]) => {
|
||||
|
@ -0,0 +1,99 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { TemplateMocksService } from '../../../../../services/template-mocks.service';
|
||||
import { EthernetSwitchTemplate } from '../../../../../models/templates/ethernet-switch-template';
|
||||
import { EthernetSwitchesAddTemplateComponent } from './ethernet-switches-add-template.component';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public addTemplate(server: Server, ethernetHubTemplate: EthernetSwitchTemplate) {
|
||||
return of(ethernetHubTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('EthernetSwitchesAddTemplateComponent', () => {
|
||||
let component: EthernetSwitchesAddTemplateComponent;
|
||||
let fixture: ComponentFixture<EthernetSwitchesAddTemplateComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService},
|
||||
{ provide: TemplateMocksService, useClass: TemplateMocksService }
|
||||
],
|
||||
declarations: [
|
||||
EthernetSwitchesAddTemplateComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(EthernetSwitchesAddTemplateComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call add template', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
component.templateName = "sample name";
|
||||
component.numberOfPorts = 2;
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when template name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
spyOn(mockedToasterService, 'error');
|
||||
component.templateName = "";
|
||||
component.numberOfPorts = 2;
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).not.toHaveBeenCalled();
|
||||
expect(mockedToasterService.error).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when number of ports is missing', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'addTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
spyOn(mockedToasterService, 'error');
|
||||
component.templateName = "sample name";
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.addTemplate).not.toHaveBeenCalled();
|
||||
expect(mockedToasterService.error).toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -30,14 +30,8 @@ export class EthernetSwitchesAddTemplateComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
});
|
||||
}
|
||||
|
@ -0,0 +1,114 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, MatTableModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { EthernetSwitchTemplate } from '../../../../../models/templates/ethernet-switch-template';
|
||||
import { EthernetSwitchesTemplateDetailsComponent } from './ethernet-switches-template-details.component';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public getTemplate(server: Server, template_id: string) {
|
||||
return of({ports_mapping: []} as EthernetSwitchTemplate);
|
||||
}
|
||||
|
||||
public saveTemplate(server: Server, cloudTemplate: EthernetSwitchTemplate) {
|
||||
return of(cloudTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('EthernetSwitchesTemplateDetailsComponent', () => {
|
||||
let component: EthernetSwitchesTemplateDetailsComponent;
|
||||
let fixture: ComponentFixture<EthernetSwitchesTemplateDetailsComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, ReactiveFormsModule, MatTableModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService}
|
||||
],
|
||||
declarations: [
|
||||
EthernetSwitchesTemplateDetailsComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(EthernetSwitchesTemplateDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call save template', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
component.inputForm.controls['templateName'].setValue('template name');
|
||||
component.inputForm.controls['defaultName'].setValue('default name');
|
||||
component.inputForm.controls['symbol'].setValue('symbol');
|
||||
component.ethernetSwitchTemplate = {ports_mapping: []} as EthernetSwitchTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call save template when template name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
component.inputForm.controls['templateName'].setValue('');
|
||||
component.inputForm.controls['defaultName'].setValue('default name');
|
||||
component.inputForm.controls['symbol'].setValue('symbol');
|
||||
component.ethernetSwitchTemplate = {ports_mapping: []} as EthernetSwitchTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call save template when default name is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
component.inputForm.controls['templateName'].setValue('template name');
|
||||
component.inputForm.controls['defaultName'].setValue('');
|
||||
component.inputForm.controls['symbol'].setValue('symbol');
|
||||
component.ethernetSwitchTemplate = {ports_mapping: []} as EthernetSwitchTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should call save template when symbol path is empty', () => {
|
||||
spyOn(mockedBuiltInTemplatesService, 'saveTemplate').and.returnValue(of({} as EthernetSwitchTemplate));
|
||||
component.inputForm.controls['templateName'].setValue('template name');
|
||||
component.inputForm.controls['defaultName'].setValue('default name');
|
||||
component.inputForm.controls['symbol'].setValue('');
|
||||
component.ethernetSwitchTemplate = {ports_mapping: []} as EthernetSwitchTemplate;
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedBuiltInTemplatesService.saveTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -0,0 +1,57 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { MockedActivatedRoute } from '../../../preferences.component.spec';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { BuiltInTemplatesService } from '../../../../../services/built-in-templates.service';
|
||||
import { EthernetSwitchesTemplatesComponent } from './ethernet-switches-templates.component';
|
||||
import { EthernetSwitchTemplate } from '../../../../../models/templates/ethernet-switch-template';
|
||||
|
||||
export class MockedBuiltInTemplatesService {
|
||||
public getTemplates(server: Server) {
|
||||
return of([{} as EthernetSwitchTemplate]);
|
||||
}
|
||||
}
|
||||
|
||||
describe('EthernetSwitchesTemplatesComponent', () => {
|
||||
let component: EthernetSwitchesTemplatesComponent;
|
||||
let fixture: ComponentFixture<EthernetSwitchesTemplatesComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService }
|
||||
],
|
||||
declarations: [
|
||||
EthernetSwitchesTemplatesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(EthernetSwitchesTemplatesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -23,14 +23,8 @@ export class EthernetSwitchesTemplatesComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
|
||||
this.builtInTemplatesService.getTemplates(this.server).subscribe((ethernetSwitchesTemplates: EthernetSwitchTemplate[]) => {
|
||||
|
@ -0,0 +1,112 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatInputModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, MatSelectModule, MatFormFieldModule, MatAutocompleteModule, MatTableModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { MockedServerService } from '../../../../services/server.service.spec';
|
||||
import { ServerService } from '../../../../services/server.service';
|
||||
import { Server } from '../../../../models/server';
|
||||
import { ToasterService } from '../../../../services/toaster.service';
|
||||
import { TemplateMocksService } from '../../../../services/template-mocks.service';
|
||||
import { MockedToasterService } from '../../../../services/toaster.service.spec';
|
||||
import { MockedActivatedRoute } from '../../preferences.component.spec';
|
||||
import { IosTemplate } from '../../../../models/templates/ios-template';
|
||||
import { AddIosTemplateComponent } from './add-ios-template.component';
|
||||
import { IosService } from '../../../../services/ios.service';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { IosConfigurationService } from '../../../../services/ios-configuration.service';
|
||||
|
||||
export class MockedIosService {
|
||||
public addTemplate(server: Server, iosTemplate: IosTemplate) {
|
||||
return of(iosTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('AddIosTemplateComponent', () => {
|
||||
let component: AddIosTemplateComponent;
|
||||
let fixture: ComponentFixture<AddIosTemplateComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedIosService = new MockedIosService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [ FormsModule, MatTableModule, MatAutocompleteModule, MatFormFieldModule, MatInputModule, ReactiveFormsModule, MatSelectModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: IosService, useValue: mockedIosService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService},
|
||||
{ provide: TemplateMocksService, useClass: TemplateMocksService },
|
||||
{ provide: IosConfigurationService, useClass: IosConfigurationService }
|
||||
],
|
||||
declarations: [
|
||||
AddIosTemplateComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AddIosTemplateComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call add template', () => {
|
||||
spyOn(mockedIosService, 'addTemplate').and.returnValue(of({} as IosTemplate));
|
||||
component.iosImageForm.controls['imageName'].setValue('image name');
|
||||
component.iosNameForm.controls['templateName'].setValue('template name');
|
||||
component.iosMemoryForm.controls['memory'].setValue(0);
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedIosService.addTemplate).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when template name is not defined', () => {
|
||||
spyOn(mockedIosService, 'addTemplate').and.returnValue(of({} as IosTemplate));
|
||||
component.iosImageForm.controls['imageName'].setValue('image name');
|
||||
component.iosNameForm.controls['templateName'].setValue('');
|
||||
component.iosMemoryForm.controls['memory'].setValue(0);
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedIosService.addTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when image name is not defined', () => {
|
||||
spyOn(mockedIosService, 'addTemplate').and.returnValue(of({} as IosTemplate));
|
||||
component.iosNameForm.controls['templateName'].setValue('template name');
|
||||
component.iosMemoryForm.controls['memory'].setValue(0);
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedIosService.addTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not call add template when memory is not defined', () => {
|
||||
spyOn(mockedIosService, 'addTemplate').and.returnValue(of({} as IosTemplate));
|
||||
component.iosImageForm.controls['imageName'].setValue('image name');
|
||||
component.iosNameForm.controls['templateName'].setValue('template name');
|
||||
component.server = {id: 1} as Server;
|
||||
|
||||
component.addTemplate();
|
||||
|
||||
expect(mockedIosService.addTemplate).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -86,7 +86,7 @@ export class AddIosTemplateComponent implements OnInit {
|
||||
}
|
||||
|
||||
addTemplate() {
|
||||
if (!this.iosImageForm.invalid) {
|
||||
if (!this.iosImageForm.invalid && !this.iosNameForm.invalid && !this.iosMemoryForm.invalid) {
|
||||
this.iosTemplate.template_id = uuid();
|
||||
|
||||
if (this.isEtherSwitchRouter) {
|
||||
|
@ -0,0 +1,61 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { MockedServerService } from '../../../../services/server.service.spec';
|
||||
import { ServerService } from '../../../../services/server.service';
|
||||
import { MockedActivatedRoute } from '../../preferences.component.spec';
|
||||
import { ServerSettingsService } from '../../../../services/server-settings.service';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { MockedServerSettingsService } from '../../../../services/server-settings.service.spec';
|
||||
import { MockedToasterService } from '../../../../services/toaster.service.spec';
|
||||
import { ToasterService } from '../../../../services/toaster.service';
|
||||
import { DynamipsPreferencesComponent } from './dynamips-preferences.component';
|
||||
|
||||
describe('DynamipsPreferencesComponent', () => {
|
||||
let component: DynamipsPreferencesComponent;
|
||||
let fixture: ComponentFixture<DynamipsPreferencesComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
let mockedServerSettingsService = new MockedServerSettingsService();
|
||||
let mockedToasterService = new MockedToasterService();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [HttpClientModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: ServerSettingsService, useValue: mockedServerSettingsService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService }
|
||||
],
|
||||
declarations: [
|
||||
DynamipsPreferencesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(DynamipsPreferencesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should clear path when restore defaults called', () => {
|
||||
component.dynamipsPath = 'Non empty';
|
||||
component.restoreDefaults();
|
||||
|
||||
expect(component.dynamipsPath).toBe('');
|
||||
});
|
||||
});
|
@ -1,8 +1,7 @@
|
||||
import { Component, OnInit } from "@angular/core";
|
||||
import { ServerSettingsService } from '../../../../services/server-settings.service';
|
||||
import { ActivatedRoute, ParamMap } from '@angular/router';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Server } from '../../../../models/server';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { ServerService } from '../../../../services/server.service';
|
||||
|
||||
|
||||
@ -22,15 +21,13 @@ export class DynamipsPreferencesComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
});
|
||||
}
|
||||
|
||||
restoreDefaults() {
|
||||
this.dynamipsPath = '';
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,76 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { MockedServerService } from '../../../../services/server.service.spec';
|
||||
import { ServerService } from '../../../../services/server.service';
|
||||
import { Server } from '../../../../models/server';
|
||||
import { MockedToasterService } from '../../../../services/toaster.service.spec';
|
||||
import { ToasterService } from '../../../../services/toaster.service';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { MockedActivatedRoute } from '../../preferences.component.spec';
|
||||
import { IosTemplate } from '../../../../models/templates/ios-template';
|
||||
import { IosTemplateDetailsComponent } from './ios-template-details.component';
|
||||
import { IosService } from '../../../../services/ios.service';
|
||||
import { IosConfigurationService } from '../../../../services/ios-configuration.service';
|
||||
|
||||
export class MockedIosService {
|
||||
public getTemplate(server: Server, template_id: string) {
|
||||
return of({} as IosTemplate);
|
||||
}
|
||||
|
||||
public saveTemplate(server: Server, iosTemplate: IosTemplate) {
|
||||
return of(iosTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
describe('IosTemplateDetailsComponent', () => {
|
||||
let component: IosTemplateDetailsComponent;
|
||||
let fixture: ComponentFixture<IosTemplateDetailsComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedIosService = new MockedIosService;
|
||||
let mockedToasterService = new MockedToasterService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: IosService, useValue: mockedIosService },
|
||||
{ provide: ToasterService, useValue: mockedToasterService },
|
||||
{ provide: IosConfigurationService, useClass: IosConfigurationService }
|
||||
],
|
||||
declarations: [
|
||||
IosTemplateDetailsComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(IosTemplateDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should call save template', () => {
|
||||
spyOn(mockedIosService, 'saveTemplate').and.returnValue(of({} as IosTemplate));
|
||||
|
||||
component.onSave();
|
||||
|
||||
expect(mockedIosService.saveTemplate).toHaveBeenCalled();
|
||||
});
|
||||
});
|
@ -58,8 +58,6 @@ export class IosTemplateDetailsComponent implements OnInit {
|
||||
this.chassis = this.iosConfigurationService.getChassis();
|
||||
this.defaultRam = this.iosConfigurationService.getDefaultRamSettings();
|
||||
this.fillAdaptersData();
|
||||
|
||||
console.log(this.iosTemplate.slot3);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -0,0 +1,57 @@
|
||||
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { of } from 'rxjs';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { MockedServerService } from '../../../../services/server.service.spec';
|
||||
import { ServerService } from '../../../../services/server.service';
|
||||
import { Server } from '../../../../models/server';
|
||||
import { MockedActivatedRoute } from '../../preferences.component.spec';
|
||||
import { IosTemplate } from '../../../../models/templates/ios-template';
|
||||
import { IosTemplatesComponent } from './ios-templates.component';
|
||||
import { IosService } from '../../../../services/ios.service';
|
||||
|
||||
export class MockedIosService {
|
||||
public getTemplates(server: Server) {
|
||||
return of([{} as IosTemplate]);
|
||||
}
|
||||
}
|
||||
|
||||
describe('IosTemplatesComponent', () => {
|
||||
let component: IosTemplatesComponent;
|
||||
let fixture: ComponentFixture<IosTemplatesComponent>;
|
||||
|
||||
let mockedServerService = new MockedServerService;
|
||||
let mockedIosService = new MockedIosService;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
},
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: IosService, useValue: mockedIosService }
|
||||
],
|
||||
declarations: [
|
||||
IosTemplatesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(IosTemplatesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -23,14 +23,8 @@ export class IosTemplatesComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.paramMap
|
||||
.pipe(
|
||||
switchMap((params: ParamMap) => {
|
||||
const server_id = params.get('server_id');
|
||||
return this.serverService.get(parseInt(server_id, 10));
|
||||
})
|
||||
)
|
||||
.subscribe((server: Server) => {
|
||||
const server_id = this.route.snapshot.paramMap.get("server_id");
|
||||
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
|
||||
this.server = server;
|
||||
|
||||
this.iosService.getTemplates(this.server).subscribe((templates: IosTemplate[]) => {
|
||||
|
@ -0,0 +1,44 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MatCheckboxModule, MatIconModule, MatToolbarModule, MatMenuModule } from '@angular/material';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { GeneralPreferencesComponent } from './general-preferences.component';
|
||||
import { MockedActivatedRoute } from '../preferences.component.spec';
|
||||
|
||||
describe('GeneralPreferencesComponent', () => {
|
||||
let component: GeneralPreferencesComponent;
|
||||
let fixture: ComponentFixture<GeneralPreferencesComponent>;
|
||||
let activatedRoute = new MockedActivatedRoute().get();
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
}
|
||||
],
|
||||
declarations: [
|
||||
GeneralPreferencesComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(GeneralPreferencesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should set correct server id', () => {
|
||||
expect(component.serverId).toBe('1');
|
||||
});
|
||||
});
|
@ -1,7 +1,5 @@
|
||||
import { Component, OnInit } from "@angular/core";
|
||||
import { ActivatedRoute, ParamMap } from '@angular/router';
|
||||
import { ServerService } from '../../../services/server.service';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
|
||||
|
||||
@Component({
|
||||
|
@ -46,7 +46,7 @@ describe('QemuVmTemplateDetailsComponent', () => {
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, ReactiveFormsModule, MatTableModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
imports: [FormsModule, ReactiveFormsModule, MatTableModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
|
||||
providers: [
|
||||
{
|
||||
provide: ActivatedRoute, useValue: activatedRoute
|
||||
|
@ -2,7 +2,6 @@ import { Component, OnInit } from "@angular/core";
|
||||
import { Server } from '../../../../models/server';
|
||||
import { ActivatedRoute, ParamMap } from '@angular/router';
|
||||
import { ServerService } from '../../../../services/server.service';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { VpcsService } from '../../../../services/vpcs.service';
|
||||
import { VpcsTemplate } from '../../../../models/templates/vpcs-template';
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user