thingsboard/ui/node_modules/ngFlowchart/app/flowchart/mouseover-service_test.js
2020-05-19 11:43:42 +03:00

78 lines
2.9 KiB
JavaScript

'use strict';
describe('The mouse-overservice', function() {
beforeEach(function() {
module('flowchart');
});
beforeEach(inject(function($rootScope, Mouseoverfactory, flowchartConstants) {
this.$scope = $rootScope.$new();
this.$scope.mouseOver = {};
this.applyFunction = jasmine.createSpy('applyfunction').and.callFake(function(f) {
return f();
});
this.mouseoverservice = Mouseoverfactory(this.$scope.mouseOver, this.applyFunction);
this.node = {name: 'testnode', id: 1, x: 0, y: 0};
this.connector = {id: 1, type: flowchartConstants.rightConnectorType};
this.edge = {source: 1, destination: 2};
this.event = {};
}));
it('should initialize the $scope.mouseOver', function() {
expect(this.$scope.mouseOver.node).toBeNull();
expect(this.$scope.mouseOver.connector).toBeNull();
expect(this.$scope.mouseOver.edge).toBeNull();
});
it('.nodeMouseEnter and .nodeMouseLeave should mark the node as hovered and call the applyFunction', function() {
this.mouseoverservice.nodeMouseOver(this.node)(this.event);
expect(this.$scope.mouseOver.node).toBe(this.node);
expect(this.applyFunction.calls.count()).toEqual(1);
expect(this.$scope.mouseOver.connector).toBeNull();
expect(this.$scope.mouseOver.edge).toBeNull();
this.mouseoverservice.nodeMouseOut(this.node)(this.event);
expect(this.$scope.mouseOver.node).toBeNull();
expect(this.applyFunction.calls.count()).toEqual(2);
expect(this.$scope.mouseOver.connector).toBeNull();
expect(this.$scope.mouseOver.edge).toBeNull();
});
it('.connectorMouseEnter and .connectorMouseLeave should mark the connector as hovered and call the applyFunction', function() {
this.mouseoverservice.connectorMouseEnter(this.connector)(this.event);
expect(this.$scope.mouseOver.connector).toBe(this.connector);
expect(this.applyFunction.calls.count()).toEqual(1);
expect(this.$scope.mouseOver.node).toBeNull();
expect(this.$scope.mouseOver.edge).toBeNull();
this.mouseoverservice.connectorMouseLeave(this.connector)(this.event);
expect(this.$scope.mouseOver.connector).toBeNull();
expect(this.applyFunction.calls.count()).toEqual(2);
expect(this.$scope.mouseOver.node).toBeNull();
expect(this.$scope.mouseOver.edge).toBeNull();
});
it('.edgeMouseEnter and .edgeMouseLeave should mark the connector as hovered and not call the applyfunction', function() {
this.mouseoverservice.edgeMouseEnter(this.event, this.edge);
expect(this.$scope.mouseOver.edge).toBe(this.edge);
expect(this.$scope.mouseOver.node).toBeNull();
expect(this.$scope.mouseOver.connector).toBeNull();
this.mouseoverservice.edgeMouseLeave(this.event, this.edge);
expect(this.$scope.mouseOver.edge).toBeNull();
expect(this.applyFunction).not.toHaveBeenCalled();
expect(this.$scope.mouseOver.node).toBeNull();
expect(this.$scope.mouseOver.connector).toBeNull();
});
});