Unit tests added

This commit is contained in:
Piotr Pekala 2019-07-30 08:44:43 -07:00
parent 753649a321
commit 6a5aca2dcd
2 changed files with 94 additions and 0 deletions

View File

@ -0,0 +1,86 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { Server } from '../../../../models/server';
import {
MatDialogModule,
MatFormFieldModule,
MatDialogRef,
MAT_DIALOG_DATA,
MatSnackBarModule
} from '@angular/material';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ToasterService } from '../../../../services/toaster.service';
import { of } from 'rxjs/internal/observable/of';
import { ConfigEditorDialogComponent } from './config-editor.component';
import { NodeService } from '../../../../services/node.service';
import { FormsModule } from '@angular/forms';
import { MockedNodeService } from '../../project-map.component.spec';
import { Node } from '../../../../cartography/models/node';
describe('ConfigEditorDialogComponent', () => {
let component: ConfigEditorDialogComponent;
let fixture: ComponentFixture<ConfigEditorDialogComponent>;
let server: Server;
let node: Node;
let toaster = {
success: jasmine.createSpy('success')
};
let dialogRef = {
close: jasmine.createSpy('close')
};
let mockedNodeService: MockedNodeService = new MockedNodeService();
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
MatDialogModule,
MatFormFieldModule,
NoopAnimationsModule,
MatSnackBarModule,
FormsModule
],
providers: [
{ provide: MatDialogRef, useValue: dialogRef },
{ provide: MAT_DIALOG_DATA },
{ provide: NodeService, useValue: mockedNodeService },
{ provide: ToasterService, useValue: toaster }
],
declarations: [ConfigEditorDialogComponent]
}).compileComponents();
server = new Server();
server.host = 'localhost';
server.port = 80;
node = new Node();
node.name = 'sample name';
}));
beforeEach(() => {
fixture = TestBed.createComponent(ConfigEditorDialogComponent);
component = fixture.componentInstance;
component.server = server;
component.node = node;
fixture.detectChanges();
});
it('should be created', () => {
expect(fixture).toBeDefined();
expect(component).toBeTruthy();
});
it('should call node service when save configuration chosen', () => {
spyOn(mockedNodeService, 'saveConfiguration').and.returnValue(of('sample config'));
component.onSaveClick();
expect(mockedNodeService.saveConfiguration).toHaveBeenCalled();
});
it('should not call node service when save configuration chosen', () => {
spyOn(mockedNodeService, 'saveConfiguration').and.returnValue(of('sample config'));
component.onCancelClick();
expect(mockedNodeService.saveConfiguration).not.toHaveBeenCalled();
});
});

View File

@ -94,6 +94,14 @@ export class MockedNodeService {
duplicate(server: Server, node: Node) {
return of(node);
}
getConfiguration(server: Server, node: Node) {
return of('sample config');
}
saveConfiguration(server: Server, node: Node, configuration: string) {
return of(configuration);
}
}
export class MockedDrawingService {