mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-06-16 05:48:10 +00:00
Bug fixed
This commit is contained in:
@ -13,7 +13,7 @@ import { DuplicateActionComponent } from './duplicate-action.component';
|
|||||||
import { ToasterService } from '../../../../../services/toaster.service';
|
import { ToasterService } from '../../../../../services/toaster.service';
|
||||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||||
|
|
||||||
fdescribe('DuplicateActionComponent', () => {
|
describe('DuplicateActionComponent', () => {
|
||||||
let component: DuplicateActionComponent;
|
let component: DuplicateActionComponent;
|
||||||
let fixture: ComponentFixture<DuplicateActionComponent>;
|
let fixture: ComponentFixture<DuplicateActionComponent>;
|
||||||
let mockedNodeService: MockedNodeService = new MockedNodeService();
|
let mockedNodeService: MockedNodeService = new MockedNodeService();
|
||||||
|
@ -50,6 +50,8 @@ import { InterfaceLabelWidget } from '../../cartography/widgets/interface-label'
|
|||||||
import { MapLinkNodeToLinkNodeConverter } from '../../cartography/converters/map/map-link-node-to-link-node-converter';
|
import { MapLinkNodeToLinkNodeConverter } from '../../cartography/converters/map/map-link-node-to-link-node-converter';
|
||||||
import { MapSettingService } from '../../services/mapsettings.service';
|
import { MapSettingService } from '../../services/mapsettings.service';
|
||||||
import { ProjectMapMenuComponent } from './project-map-menu/project-map-menu.component';
|
import { ProjectMapMenuComponent } from './project-map-menu/project-map-menu.component';
|
||||||
|
import { MockedToasterService } from '../../services/toaster.service.spec';
|
||||||
|
import { ToasterService } from '../../services/toaster.service';
|
||||||
|
|
||||||
export class MockedProgressService {
|
export class MockedProgressService {
|
||||||
public activate() {}
|
public activate() {}
|
||||||
@ -198,6 +200,7 @@ describe('ProjectMapComponent', () => {
|
|||||||
let drawingsDataSource = new MockedDrawingsDataSource();
|
let drawingsDataSource = new MockedDrawingsDataSource();
|
||||||
let nodesDataSource = new MockedNodesDataSource();
|
let nodesDataSource = new MockedNodesDataSource();
|
||||||
let linksDataSource = new MockedLinksDataSource();
|
let linksDataSource = new MockedLinksDataSource();
|
||||||
|
let mockedToasterService = new MockedToasterService();
|
||||||
let nodeCreatedLabelStylesFixer;
|
let nodeCreatedLabelStylesFixer;
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
@ -241,7 +244,8 @@ describe('ProjectMapComponent', () => {
|
|||||||
},
|
},
|
||||||
{ provide: NodeCreatedLabelStylesFixer, useValue: nodeCreatedLabelStylesFixer},
|
{ provide: NodeCreatedLabelStylesFixer, useValue: nodeCreatedLabelStylesFixer},
|
||||||
{ provide: MapScaleService },
|
{ provide: MapScaleService },
|
||||||
{ provide: NodeCreatedLabelStylesFixer, useValue: nodeCreatedLabelStylesFixer}
|
{ provide: NodeCreatedLabelStylesFixer, useValue: nodeCreatedLabelStylesFixer},
|
||||||
|
{ provide: ToasterService, useValue: mockedToasterService }
|
||||||
],
|
],
|
||||||
declarations: [ProjectMapComponent, ProjectMapMenuComponent, D3MapComponent, ...ANGULAR_MAP_DECLARATIONS],
|
declarations: [ProjectMapComponent, ProjectMapMenuComponent, D3MapComponent, ...ANGULAR_MAP_DECLARATIONS],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
@ -254,6 +258,10 @@ describe('ProjectMapComponent', () => {
|
|||||||
component.projectMapMenuComponent = {
|
component.projectMapMenuComponent = {
|
||||||
resetDrawToolChoice(){}
|
resetDrawToolChoice(){}
|
||||||
} as ProjectMapMenuComponent;
|
} as ProjectMapMenuComponent;
|
||||||
|
|
||||||
|
component.ws = {
|
||||||
|
OPEN: 0,
|
||||||
|
} as WebSocket;
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
|
@ -66,7 +66,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
public symbols: Symbol[] = [];
|
public symbols: Symbol[] = [];
|
||||||
public project: Project;
|
public project: Project;
|
||||||
public server: Server;
|
public server: Server;
|
||||||
private ws: WebSocket;
|
public ws: WebSocket;
|
||||||
public isProjectMapMenuVisible: boolean = false;
|
public isProjectMapMenuVisible: boolean = false;
|
||||||
|
|
||||||
tools = {
|
tools = {
|
||||||
@ -232,11 +232,11 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
setUpWS(project: Project) {
|
setUpWS(project: Project) {
|
||||||
this.ws = new WebSocket(this.projectService.notificationsPath(this.server, project.project_id));
|
this.ws = new WebSocket(this.projectService.notificationsPath(this.server, project.project_id));
|
||||||
|
|
||||||
this.ws.onmessage = (ev: MessageEvent) => {
|
this.ws.onmessage = (event: MessageEvent) => {
|
||||||
this.projectWebServiceHandler.handleMessage(ev);
|
this.projectWebServiceHandler.handleMessage(JSON.parse(event.data));
|
||||||
};
|
};
|
||||||
|
|
||||||
this.ws.onerror = (ev: MessageEvent) => {
|
this.ws.onerror = (event: MessageEvent) => {
|
||||||
this.toasterService.error('Connection to host lost.');
|
this.toasterService.error('Connection to host lost.');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -30,13 +30,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, nodesDataSource: NodesDataSource) => {
|
(service: ProjectWebServiceHandler, nodesDataSource: NodesDataSource) => {
|
||||||
spyOn(nodesDataSource, 'add');
|
spyOn(nodesDataSource, 'add');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'node.created';
|
message.action = 'node.created';
|
||||||
message.event = new Node();
|
message.event = new Node();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(nodesDataSource.add).toHaveBeenCalledWith(message.event);
|
expect(nodesDataSource.add).toHaveBeenCalledWith(message.event);
|
||||||
@ -48,13 +46,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, nodesDataSource: NodesDataSource) => {
|
(service: ProjectWebServiceHandler, nodesDataSource: NodesDataSource) => {
|
||||||
spyOn(nodesDataSource, 'update');
|
spyOn(nodesDataSource, 'update');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'node.updated';
|
message.action = 'node.updated';
|
||||||
message.event = new Node();
|
message.event = new Node();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(nodesDataSource.update).toHaveBeenCalledWith(message.event);
|
expect(nodesDataSource.update).toHaveBeenCalledWith(message.event);
|
||||||
@ -66,13 +62,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, nodesDataSource: NodesDataSource) => {
|
(service: ProjectWebServiceHandler, nodesDataSource: NodesDataSource) => {
|
||||||
spyOn(nodesDataSource, 'remove');
|
spyOn(nodesDataSource, 'remove');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'node.deleted';
|
message.action = 'node.deleted';
|
||||||
message.event = new Node();
|
message.event = new Node();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(nodesDataSource.remove).toHaveBeenCalledWith(message.event);
|
expect(nodesDataSource.remove).toHaveBeenCalledWith(message.event);
|
||||||
@ -84,13 +78,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, linksDataSource: LinksDataSource) => {
|
(service: ProjectWebServiceHandler, linksDataSource: LinksDataSource) => {
|
||||||
spyOn(linksDataSource, 'add');
|
spyOn(linksDataSource, 'add');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'link.created';
|
message.action = 'link.created';
|
||||||
message.event = new Link();
|
message.event = new Link();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(linksDataSource.add).toHaveBeenCalledWith(message.event);
|
expect(linksDataSource.add).toHaveBeenCalledWith(message.event);
|
||||||
@ -102,13 +94,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, linksDataSource: LinksDataSource) => {
|
(service: ProjectWebServiceHandler, linksDataSource: LinksDataSource) => {
|
||||||
spyOn(linksDataSource, 'update');
|
spyOn(linksDataSource, 'update');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'link.updated';
|
message.action = 'link.updated';
|
||||||
message.event = new Link();
|
message.event = new Link();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(linksDataSource.update).toHaveBeenCalledWith(message.event);
|
expect(linksDataSource.update).toHaveBeenCalledWith(message.event);
|
||||||
@ -120,13 +110,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, linksDataSource: LinksDataSource) => {
|
(service: ProjectWebServiceHandler, linksDataSource: LinksDataSource) => {
|
||||||
spyOn(linksDataSource, 'remove');
|
spyOn(linksDataSource, 'remove');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'link.deleted';
|
message.action = 'link.deleted';
|
||||||
message.event = new Link();
|
message.event = new Link();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(linksDataSource.remove).toHaveBeenCalledWith(message.event);
|
expect(linksDataSource.remove).toHaveBeenCalledWith(message.event);
|
||||||
@ -138,13 +126,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, drawingsDataSource: DrawingsDataSource) => {
|
(service: ProjectWebServiceHandler, drawingsDataSource: DrawingsDataSource) => {
|
||||||
spyOn(drawingsDataSource, 'add');
|
spyOn(drawingsDataSource, 'add');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'drawing.created';
|
message.action = 'drawing.created';
|
||||||
message.event = new Drawing();
|
message.event = new Drawing();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(drawingsDataSource.add).toHaveBeenCalledWith(message.event);
|
expect(drawingsDataSource.add).toHaveBeenCalledWith(message.event);
|
||||||
@ -156,13 +142,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, drawingsDataSource: DrawingsDataSource) => {
|
(service: ProjectWebServiceHandler, drawingsDataSource: DrawingsDataSource) => {
|
||||||
spyOn(drawingsDataSource, 'update');
|
spyOn(drawingsDataSource, 'update');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'drawing.updated';
|
message.action = 'drawing.updated';
|
||||||
message.event = new Drawing();
|
message.event = new Drawing();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(drawingsDataSource.update).toHaveBeenCalledWith(message.event);
|
expect(drawingsDataSource.update).toHaveBeenCalledWith(message.event);
|
||||||
@ -174,13 +158,11 @@ describe('ProjectWebServiceHandler', () => {
|
|||||||
(service: ProjectWebServiceHandler, drawingsDataSource: DrawingsDataSource) => {
|
(service: ProjectWebServiceHandler, drawingsDataSource: DrawingsDataSource) => {
|
||||||
spyOn(drawingsDataSource, 'remove');
|
spyOn(drawingsDataSource, 'remove');
|
||||||
|
|
||||||
service.connect(ws);
|
|
||||||
|
|
||||||
const message = new WebServiceMessage();
|
const message = new WebServiceMessage();
|
||||||
message.action = 'drawing.deleted';
|
message.action = 'drawing.deleted';
|
||||||
message.event = new Drawing();
|
message.event = new Drawing();
|
||||||
|
|
||||||
ws.next(message);
|
service.handleMessage(message);
|
||||||
|
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
expect(drawingsDataSource.remove).toHaveBeenCalledWith(message.event);
|
expect(drawingsDataSource.remove).toHaveBeenCalledWith(message.event);
|
||||||
|
@ -21,11 +21,8 @@ export class ProjectWebServiceHandler {
|
|||||||
private drawingsDataSource: DrawingsDataSource
|
private drawingsDataSource: DrawingsDataSource
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
public handleMessage(event: MessageEvent) {
|
public handleMessage(message: WebServiceMessage) {
|
||||||
console.log(event);
|
|
||||||
let message = event.data;
|
|
||||||
if (message.action === 'node.updated') {
|
if (message.action === 'node.updated') {
|
||||||
console.log('should work');
|
|
||||||
this.nodesDataSource.update(message.event as Node);
|
this.nodesDataSource.update(message.event as Node);
|
||||||
}
|
}
|
||||||
if (message.action === 'node.created') {
|
if (message.action === 'node.created') {
|
||||||
|
Reference in New Issue
Block a user