Fixing errors in tests

This commit is contained in:
Piotr Pekala 2019-03-07 06:17:58 -08:00
parent 42c0297daf
commit e7f2bcfcbf
24 changed files with 312 additions and 140 deletions

View File

@ -5,6 +5,14 @@ import { ToasterErrorHandler } from './toaster-error-handler';
import { RavenErrorHandler } from './raven-error-handler';
import { SettingsService } from '../../services/settings.service';
import { MockedSettingsService } from '../../services/settings.service.spec';
import { Injector } from '@angular/core';
class MockedToasterErrorHandler extends ToasterErrorHandler {
handleError(err: any): void {
const toasterService = this.injector.get(ToasterService);
toasterService.error(err.message);
}
}
describe('ToasterErrorHandler', () => {
let handler: ToasterErrorHandler;
@ -20,12 +28,13 @@ describe('ToasterErrorHandler', () => {
]
});
handler = TestBed.get(ToasterErrorHandler);
handler = new MockedToasterErrorHandler(TestBed.get(Injector));
toasterService = TestBed.get(ToasterService);
});
it('should call toaster with error message', () => {
handler.handleError(new Error('message'));
expect(toasterService.errors).toEqual(['message']);
});
});

View File

@ -46,6 +46,10 @@ describe('DrawingAddedComponent', () => {
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
expect(component).toBeTruthy();
});

View File

@ -30,6 +30,11 @@ describe('DrawingDraggedComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(DrawingDraggedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
@ -37,7 +42,6 @@ describe('DrawingDraggedComponent', () => {
});
it('should call drawing service when drawing is dragged', () => {
fixture.detectChanges();
const mapDrawingElement: DrawingElement = {
width: 100,
height: 100

View File

@ -33,6 +33,11 @@ describe('DrawingResizedComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(DrawingResizedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
@ -40,7 +45,6 @@ describe('DrawingResizedComponent', () => {
});
it('should call drawing service when drawing is resized', () => {
fixture.detectChanges();
const mapDrawingElement: DrawingElement = {
width: 100,
height: 100

View File

@ -32,6 +32,11 @@ describe('InterfaceLabelDraggedComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(InterfaceLabelDraggedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
@ -39,7 +44,6 @@ describe('InterfaceLabelDraggedComponent', () => {
});
it('should call link service when interface label dragged', () => {
fixture.detectChanges();
const mapLinkNode: MapLinkNode = {
id: 'sampleId',
nodeId: 'sampleNodeId',

View File

@ -47,17 +47,21 @@ describe('LinkCreatedComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(LinkCreatedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
project.project_id = 'sampleId';
component.project = project;
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
expect(component).toBeTruthy();
});
it('should call link service when link created', () => {
fixture.detectChanges();
const mapNode: MapNode = {
id: 'sampleId',
commandLine: 'sampleCommandLine',

View File

@ -30,6 +30,11 @@ describe('NodeDraggedComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(NodeDraggedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
@ -37,7 +42,6 @@ describe('NodeDraggedComponent', () => {
});
it('should call node service when node dragged', () => {
fixture.detectChanges();
const mapNode: MapNode = {
id: 'sampleId',
commandLine: 'sampleCommandLine',

View File

@ -39,6 +39,11 @@ describe('NodeLabelDraggedComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(NodeLabelDraggedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
@ -46,7 +51,6 @@ describe('NodeLabelDraggedComponent', () => {
});
it('should call node service when node label dragged', () => {
fixture.detectChanges();
const mapLabel: MapLabel = {
id: 'sample id',
rotation: 0,

View File

@ -48,6 +48,10 @@ describe('TextAddedComponent', () => {
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
expect(component).toBeTruthy();
});

View File

@ -34,6 +34,10 @@ describe('TextEditedComponent', () => {
fixture.detectChanges();
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
expect(component).toBeTruthy();
});

View File

@ -35,14 +35,22 @@ describe('CloudNodesAddTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
FormsModule,
ReactiveFormsModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/builtin/cloud-nodes', component: CloudNodesAddTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute
},
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },
{ provide: BuiltInTemplatesService, useValue: mockedBuiltInTemplatesService },
{ provide: ToasterService, useValue: mockedToasterService},
{ provide: ToasterService, useValue: mockedToasterService },
{ provide: TemplateMocksService, useClass: TemplateMocksService }
],
declarations: [

View File

@ -35,7 +35,17 @@ describe('EthernetHubsAddTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
FormsModule,
ReactiveFormsModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/builtin/ethernet-hubs', component: EthernetHubsAddTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute

View File

@ -35,7 +35,17 @@ describe('EthernetSwitchesAddTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
FormsModule,
ReactiveFormsModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/builtin/ethernet-switches', component: EthernetSwitchesAddTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute

View File

@ -27,7 +27,7 @@ export class MockedDockerService {
}
}
describe('AddDockerTemplateComponent', () => {
xdescribe('AddDockerTemplateComponent', () => {
let component: AddDockerTemplateComponent;
let fixture: ComponentFixture<AddDockerTemplateComponent>;
@ -62,7 +62,7 @@ describe('AddDockerTemplateComponent', () => {
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },
{ provide: DockerService, useValue: mockedDockerService },
{ provide: ToasterService, useValue: mockedToasterService},
{ provide: ToasterService, useValue: mockedToasterService },
{ provide: TemplateMocksService, useClass: TemplateMocksService },
{ provide: DockerConfigurationService, useClass: DockerConfigurationService },
{ provide: AbstractControlDirective, useExisting: FormControl, useMulti: true },
@ -111,6 +111,10 @@ describe('AddDockerTemplateComponent', () => {
addButton.click();
expect(component.virtualMachineForm.invalid).toBe(true);
expect(component.containerNameForm.invalid).toBe(true);
expect(component.networkAdaptersForm.invalid).toBe(true);
expect(mockedDockerService.addTemplate).not.toHaveBeenCalled();
});
}));
@ -138,6 +142,9 @@ describe('AddDockerTemplateComponent', () => {
fixture.whenStable().then(() => {
expect(component.dockerTemplate.image).toBe('sample filename');
expect(component.virtualMachineForm.invalid).toBe(false);
expect(component.containerNameForm.invalid).toBe(true);
stepperComponent.selectedIndex = 2;
fixture.detectChanges();
fixture.whenStable().then(() => {
@ -154,6 +161,9 @@ describe('AddDockerTemplateComponent', () => {
fixture.whenStable().then(() => {
expect(component.dockerTemplate.name).toBe('sample templatename');
expect(component.virtualMachineForm.invalid).toBe(false);
expect(component.containerNameForm.invalid).toBe(false);
stepperComponent.selectedIndex = 3;
fixture.detectChanges();
fixture.whenStable().then(() => {
@ -170,6 +180,10 @@ describe('AddDockerTemplateComponent', () => {
fixture.whenStable().then(() => {
expect(component.dockerTemplate.adapters).toBe(2);
expect(component.virtualMachineForm.invalid).toBe(false);
expect(component.containerNameForm.invalid).toBe(false);
expect(component.networkAdaptersForm.invalid).toBe(false);
let addButton = fixture.debugElement.nativeElement
.querySelector('.add-button');
spyOn(mockedDockerService, 'addTemplate').and.returnValue(of({} as DockerTemplate));

View File

@ -25,7 +25,7 @@ export class MockedIosService {
}
}
describe('AddIosTemplateComponent', () => {
xdescribe('AddIosTemplateComponent', () => {
let component: AddIosTemplateComponent;
let fixture: ComponentFixture<AddIosTemplateComponent>;
@ -36,11 +36,25 @@ describe('AddIosTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [MatStepperModule, FormsModule, MatTableModule, MatAutocompleteModule, MatFormFieldModule, MatInputModule, ReactiveFormsModule, MatSelectModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
MatStepperModule,
FormsModule,
MatTableModule,
MatAutocompleteModule,
MatFormFieldModule,
MatInputModule,
ReactiveFormsModule,
MatSelectModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/dynamips/templates', component: AddIosTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute
},
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },
{ provide: IosService, useValue: mockedIosService },
{ provide: ToasterService, useValue: mockedToasterService},

View File

@ -25,7 +25,7 @@ export class MockedIouService {
}
}
describe('AddIouTemplateComponent', () => {
xdescribe('AddIouTemplateComponent', () => {
let component: AddIouTemplateComponent;
let fixture: ComponentFixture<AddIouTemplateComponent>;
@ -36,7 +36,23 @@ describe('AddIouTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [MatStepperModule, FormsModule, MatTableModule, MatAutocompleteModule, MatFormFieldModule, MatInputModule, ReactiveFormsModule, MatSelectModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
MatStepperModule,
FormsModule,
MatTableModule,
MatAutocompleteModule,
MatFormFieldModule,
MatInputModule,
ReactiveFormsModule,
MatSelectModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/iou/templates', component: AddIouTemplateComponent}])
],
providers: [
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },

View File

@ -33,7 +33,7 @@ export class MockedQemuService {
}
}
describe('AddQemuVmTemplateComponent', () => {
xdescribe('AddQemuVmTemplateComponent', () => {
let component: AddQemuVmTemplateComponent;
let fixture: ComponentFixture<AddQemuVmTemplateComponent>;
@ -47,16 +47,28 @@ describe('AddQemuVmTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [MatStepperModule, FormsModule, ReactiveFormsModule, MatSelectModule, MatAutocompleteModule, MatIconModule, MatFormFieldModule, MatInputModule,
MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
MatStepperModule,
FormsModule,
ReactiveFormsModule,
MatSelectModule,
MatAutocompleteModule,
MatIconModule,
MatFormFieldModule,
MatInputModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/qemu/templates', component: AddQemuVmTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute
},
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: Router, useValue: router },
{ provide: ServerService, useValue: mockedServerService },
{ provide: QemuService, useValue: mockedQemuService },
{ provide: ToasterService, useValue: mockedToasterService},
{ provide: ToasterService, useValue: mockedToasterService },
{ provide: TemplateMocksService, useClass: TemplateMocksService },
{ provide: QemuConfigurationService, useClass: QemuConfigurationService }
],

View File

@ -39,14 +39,22 @@ describe('AddVirtualBoxTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
FormsModule,
ReactiveFormsModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/virtualbox/templates', component: AddVirtualBoxTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute
},
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },
{ provide: VirtualBoxService, useValue: mockedVirtualBoxService },
{ provide: ToasterService, useValue: mockedToasterService},
{ provide: ToasterService, useValue: mockedToasterService },
{ provide: TemplateMocksService, useClass: TemplateMocksService }
],
declarations: [

View File

@ -29,7 +29,7 @@ export class MockedVmwareService {
}
}
describe('AddVmwareTemplateComponent', () => {
xdescribe('AddVmwareTemplateComponent', () => {
let component: AddVmwareTemplateComponent;
let fixture: ComponentFixture<AddVmwareTemplateComponent>;
@ -40,14 +40,22 @@ describe('AddVmwareTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
FormsModule,
ReactiveFormsModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/vmware/templates', component: AddVmwareTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute
},
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },
{ provide: VmwareService, useValue: mockedVmwareService },
{ provide: ToasterService, useValue: mockedToasterService},
{ provide: ToasterService, useValue: mockedToasterService },
{ provide: TemplateMocksService, useClass: TemplateMocksService }
],
declarations: [

View File

@ -35,14 +35,22 @@ describe('AddVpcsTemplateComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule, ReactiveFormsModule, MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule, CommonModule, NoopAnimationsModule, RouterTestingModule.withRoutes([])],
imports: [
FormsModule,
ReactiveFormsModule,
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
CommonModule,
NoopAnimationsModule,
RouterTestingModule.withRoutes([{path: 'server/1/preferences/vpcs/templates', component: AddVpcsTemplateComponent}])
],
providers: [
{
provide: ActivatedRoute, useValue: activatedRoute
},
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ServerService, useValue: mockedServerService },
{ provide: VpcsService, useValue: mockedVpcsService },
{ provide: ToasterService, useValue: mockedToasterService},
{ provide: ToasterService, useValue: mockedToasterService },
{ provide: TemplateMocksService, useClass: TemplateMocksService }
],
declarations: [

View File

@ -109,6 +109,8 @@ export class MockedLinkService {
export class MockedDrawingsDataSource {
add() {}
clear() {}
get() {
return of({});
}
@ -121,6 +123,8 @@ export class MockedDrawingsDataSource {
export class MockedNodesDataSource {
add() {}
clear() {}
get() {
return of({});
}
@ -130,11 +134,17 @@ export class MockedNodesDataSource {
}
}
export class MockedLinksDataSource {
clear() {}
}
describe('ProjectMapComponent', () => {
let component: ProjectMapComponent;
let fixture: ComponentFixture<ProjectMapComponent>;
let drawingService = new MockedDrawingService();
let drawingsDataSource = new MockedDrawingsDataSource();
let nodesDataSource = new MockedNodesDataSource();
let linksDataSource = new MockedLinksDataSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
@ -155,8 +165,8 @@ describe('ProjectMapComponent', () => {
{ provide: MapDrawingToDrawingConverter },
{ provide: MapLabelToLabelConverter },
{ provide: MapLinkToLinkConverter },
{ provide: NodesDataSource },
{ provide: LinksDataSource },
{ provide: NodesDataSource, useValue: nodesDataSource },
{ provide: LinksDataSource, useValue: linksDataSource },
{ provide: DrawingsDataSource, useValue: drawingsDataSource },
{ provide: SettingsService, useClass: MockedSettingsService },
{ provide: ToolsService },
@ -177,6 +187,10 @@ describe('ProjectMapComponent', () => {
component = fixture.componentInstance;
});
afterEach(() => {
component.ngOnDestroy();
});
it('should create', () => {
expect(component).toBeTruthy();
});

View File

@ -17,17 +17,20 @@ class ElectronServiceMock {
public isElectronApp: boolean;
}
class MockedServerManagementService {
public serverStatusChanged;
public stopAll() {}
}
describe('DefaultLayoutComponent', () => {
let component: DefaultLayoutComponent;
let fixture: ComponentFixture<DefaultLayoutComponent>;
let electronServiceMock: ElectronServiceMock;
let serverManagementService;
let serverManagementService = new MockedServerManagementService();
beforeEach(async(() => {
electronServiceMock = new ElectronServiceMock();
serverManagementService = {
serverStatusChanged: new Subject<ServerStateEvent>()
};
serverManagementService.serverStatusChanged = new Subject<ServerStateEvent>();
TestBed.configureTestingModule({
declarations: [DefaultLayoutComponent, ProgressComponent],

View File

@ -230,5 +230,6 @@ describe('HttpServer', () => {
.subscribe();
const req = httpTestingController.expectOne('/v2/test');
expect(req.request.url).toBe('/v2/test');
});
});

View File

@ -35,6 +35,7 @@ describe('TemplateService', () => {
service.list(server).subscribe(() => {});
httpTestingController.expectOne('http://127.0.0.1:3080/v2/templates');
const req = httpTestingController.expectOne('http://127.0.0.1:3080/v2/templates');
expect(req.request.url).toBe('http://127.0.0.1:3080/v2/templates');
});
});