[CORD-2324] Position the nodes not defined in the constraints
Change-Id: I712a90828e0b6a12b31f62f7391feee64c123f2c
diff --git a/src/app/service-graph/services/node-positioner.service.spec.ts b/src/app/service-graph/services/node-positioner.service.spec.ts
index 14fb9c4..c6308e9 100644
--- a/src/app/service-graph/services/node-positioner.service.spec.ts
+++ b/src/app/service-graph/services/node-positioner.service.spec.ts
@@ -43,7 +43,8 @@
beforeEach(() => {
angular.module('XosNodePositioner', [])
.service('XosNodePositioner', XosNodePositioner)
- .value('ModelRest', mockModelRest);
+ .value('ModelRest', mockModelRest)
+ .value('XosConfirm', {});
angular.mock.module('XosNodePositioner');
});
@@ -125,4 +126,30 @@
scope.$apply();
});
+
+ it('should set unpositioned nodes at the top', (done) => {
+ const svg = {width: 300, height: 200};
+ const nodes = [
+ {data: {name: 'a'}},
+ {data: {name: 'b'}},
+ {data: {name: 'c'}, type: 'service'},
+ {data: {name: 'd'}, type: 'service'}
+ ];
+ constraints = '["a", "b"]';
+
+ service.positionNodes(svg, nodes)
+ .then((positioned) => {
+ expect(positioned[0].x).toBe(100);
+ expect(positioned[0].y).toBe(100);
+ expect(positioned[1].x).toBe(200);
+ expect(positioned[1].y).toBe(100);
+ expect(positioned[2].x).toBe(100);
+ expect(positioned[2].y).toBe(150);
+ expect(positioned[3].x).toBe(200);
+ expect(positioned[3].y).toBe(150);
+ done();
+ });
+
+ scope.$apply();
+ });
});