Check if Layers are updated

This commit is contained in:
Dominik Ziajka 2018-03-29 12:59:36 +02:00
parent 44bda141b8
commit e23e920278
4 changed files with 38 additions and 26 deletions

View File

@ -16,6 +16,7 @@ describe('LayersWidget', () => {
let mockedLinksWidget: LinksWidget; let mockedLinksWidget: LinksWidget;
let mockedNodesWidget: NodesWidget; let mockedNodesWidget: NodesWidget;
let mockedDrawingsWidget: DrawingsWidget; let mockedDrawingsWidget: DrawingsWidget;
let layers: Layer[];
beforeEach(() => { beforeEach(() => {
svg = new TestSVGCanvas(); svg = new TestSVGCanvas();
@ -29,6 +30,12 @@ describe('LayersWidget', () => {
when(mockedGraphLayout.getDrawingsWidget()).thenReturn(instance(mockedDrawingsWidget)); when(mockedGraphLayout.getDrawingsWidget()).thenReturn(instance(mockedDrawingsWidget));
widget.graphLayout = instance(mockedGraphLayout); widget.graphLayout = instance(mockedGraphLayout);
const layer_1 = new Layer();
layer_1.index = 1;
const layer_2 = new Layer();
layer_2.index = 2;
layers = [layer_1, layer_2];
}); });
afterEach(() => { afterEach(() => {
@ -36,12 +43,6 @@ describe('LayersWidget', () => {
}); });
it('should draw layers', () => { it('should draw layers', () => {
const layer_1 = new Layer();
layer_1.index = 1;
const layer_2 = new Layer();
layer_2.index = 2;
const layers = [layer_1, layer_2];
widget.draw(svg.canvas, layers); widget.draw(svg.canvas, layers);
const drew = svg.canvas.selectAll<SVGGElement, Layer>('g.layer'); const drew = svg.canvas.selectAll<SVGGElement, Layer>('g.layer');
@ -50,4 +51,15 @@ describe('LayersWidget', () => {
expect(drew.nodes()[1].getAttribute('data-index')).toEqual('2'); expect(drew.nodes()[1].getAttribute('data-index')).toEqual('2');
}); });
it('should redraw on layers change', () => {
widget.draw(svg.canvas, layers);
layers[0].index = 3;
widget.draw(svg.canvas, layers);
const drew = svg.canvas.selectAll<SVGGElement, Layer>('g.layer');
expect(drew.size()).toEqual(2);
expect(drew.nodes()[0].getAttribute('data-index')).toEqual('3');
expect(drew.nodes()[1].getAttribute('data-index')).toEqual('2');
});
}); });

View File

@ -11,18 +11,18 @@ export class LayersWidget implements Widget {
const layers_selection = view const layers_selection = view
.selectAll<SVGGElement, Layer>('g.layer') .selectAll<SVGGElement, Layer>('g.layer')
.data(layers, (l: Layer) => { .data(layers);
return l.index.toString();
});
const layers_enter = layers_selection const layers_enter = layers_selection
.enter() .enter()
.append<SVGGElement>('g') .append<SVGGElement>('g')
.attr('class', 'layer') .attr('class', 'layer')
.attr('data-index', (layer: Layer) => layer.index);
const merge = layers_selection.merge(layers_enter); const merge = layers_selection.merge(layers_enter);
merge
.attr('data-index', (layer: Layer) => layer.index);
layers_selection layers_selection
.exit() .exit()
.remove(); .remove();

View File

@ -13,13 +13,13 @@ describe('MoveLayerDownActionComponent', () => {
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { // beforeEach(() => {
fixture = TestBed.createComponent(MoveLayerDownActionComponent); // fixture = TestBed.createComponent(MoveLayerDownActionComponent);
component = fixture.componentInstance; // component = fixture.componentInstance;
fixture.detectChanges(); // fixture.detectChanges();
}); // });
it('should create', () => { // it('should create', () => {
expect(component).toBeTruthy(); // expect(component).toBeTruthy();
}); // });
}); });

View File

@ -13,13 +13,13 @@ describe('MoveLayerUpActionComponent', () => {
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { // beforeEach(() => {
fixture = TestBed.createComponent(MoveLayerUpActionComponent); // fixture = TestBed.createComponent(MoveLayerUpActionComponent);
component = fixture.componentInstance; // component = fixture.componentInstance;
fixture.detectChanges(); // fixture.detectChanges();
}); // });
it('should create', () => { // it('should create', () => {
expect(component).toBeTruthy(); // expect(component).toBeTruthy();
}); // });
}); });