78 lines
2.9 KiB
JavaScript
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();
|
|
});
|
|
|
|
});
|