From 6c2399357d373a9e50a2897547d3d0bcd2a882a0 Mon Sep 17 00:00:00 2001 From: PiotrP Date: Tue, 27 Nov 2018 03:57:29 -0800 Subject: [PATCH] Unit test for drawing resizing component added --- src/app/cartography/cartography.module.ts | 2 +- .../components/d3-map/d3-map.component.ts | 6 -- .../drawing-resizing.component.spec.ts | 67 +++++++++++++++++++ ...nents.ts => drawing-resizing.component.ts} | 2 +- src/app/cartography/widgets/drawings.ts | 6 +- 5 files changed, 74 insertions(+), 9 deletions(-) rename src/app/cartography/components/drawing-resizing/{drawing-resizing.components.ts => drawing-resizing.component.ts} (96%) diff --git a/src/app/cartography/cartography.module.ts b/src/app/cartography/cartography.module.ts index c0e4c356..d59a0b8a 100644 --- a/src/app/cartography/cartography.module.ts +++ b/src/app/cartography/cartography.module.ts @@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common'; import { MatMenuModule, MatIconModule } from '@angular/material'; import { DrawLinkToolComponent } from './components/draw-link-tool/draw-link-tool.component'; -import { DrawingResizingComponent } from './components/drawing-resizing/drawing-resizing.components'; +import { DrawingResizingComponent } from './components/drawing-resizing/drawing-resizing.component'; import { CssFixer } from './helpers/css-fixer'; import { FontFixer } from './helpers/font-fixer'; diff --git a/src/app/cartography/components/d3-map/d3-map.component.ts b/src/app/cartography/components/d3-map/d3-map.component.ts index caeb7574..660fd2b5 100644 --- a/src/app/cartography/components/d3-map/d3-map.component.ts +++ b/src/app/cartography/components/d3-map/d3-map.component.ts @@ -36,9 +36,6 @@ export class D3MapComponent implements OnInit, OnChanges, OnDestroy { @Input() width = 1500; @Input() height = 600; - @Output() nodeDragged = new EventEmitter>(); - @Output() drawingDragged = new EventEmitter>(); - @Output() onLinkCreated = new EventEmitter(); @ViewChild('svg') svgRef: ElementRef; private parentNativeElement: any; @@ -86,9 +83,6 @@ export class D3MapComponent implements OnInit, OnChanges, OnDestroy { @Input('draw-link-tool') drawLinkTool: boolean; - //@Input('drawing-selected') selectedDrawing: string; - public drawingSelected = ""; - @Input('readonly') set readonly(value) { this.mapSettings.isReadOnly = value; } diff --git a/src/app/cartography/components/drawing-resizing/drawing-resizing.component.spec.ts b/src/app/cartography/components/drawing-resizing/drawing-resizing.component.spec.ts index e69de29b..2a8f8912 100644 --- a/src/app/cartography/components/drawing-resizing/drawing-resizing.component.spec.ts +++ b/src/app/cartography/components/drawing-resizing/drawing-resizing.component.spec.ts @@ -0,0 +1,67 @@ +import { ComponentFixture, TestBed, async } from '@angular/core/testing'; + +import { DrawingResizingComponent } from './drawing-resizing.component' +import { DrawingsWidget } from '../../widgets/drawings'; +import { DrawingsEventSource } from '../../events/drawings-event-source'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { Subscription } from 'rxjs'; +import { EventEmitter } from '@angular/core'; +import { ResizingEnd } from '../../events/resizing'; +import { MapDrawing } from '../../models/map/map-drawing'; + +export class DrawingWidgetMock { + resizingFinished = new EventEmitter>(); + constructor(){} + + public emitEvent(){ + const evt = new ResizingEnd(); + evt.x = 0; + evt.y = 0; + evt.width = 10; + evt.height = 10; + evt.datum = {} as MapDrawing; + + this.resizingFinished.emit(evt); + } +} + +describe('DrawizngResizingComponent', () => { + let component: DrawingResizingComponent; + let fixture: ComponentFixture; + let drawingWidgetMock = new DrawingWidgetMock; + let drawingEventSource = new DrawingsEventSource + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ + NoopAnimationsModule + ], + providers: [ + { provide: DrawingsWidget, useValue: drawingWidgetMock }, + { provide: DrawingsEventSource, useValue: drawingEventSource} + ], + declarations: [ + DrawingResizingComponent + ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DrawingResizingComponent); + component = fixture.componentInstance; + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should emit event after size changes', () => { + spyOn(drawingEventSource.resized, 'emit'); + + drawingWidgetMock.emitEvent(); + fixture.detectChanges(); + + expect(drawingEventSource.resized.emit).toHaveBeenCalled(); + }); +}); diff --git a/src/app/cartography/components/drawing-resizing/drawing-resizing.components.ts b/src/app/cartography/components/drawing-resizing/drawing-resizing.component.ts similarity index 96% rename from src/app/cartography/components/drawing-resizing/drawing-resizing.components.ts rename to src/app/cartography/components/drawing-resizing/drawing-resizing.component.ts index dfd11ba0..30abf727 100644 --- a/src/app/cartography/components/drawing-resizing/drawing-resizing.components.ts +++ b/src/app/cartography/components/drawing-resizing/drawing-resizing.component.ts @@ -12,7 +12,7 @@ import { ResizingEnd } from '../../events/resizing'; styleUrls: ['./drawing-resizing.component.scss'] }) export class DrawingResizingComponent implements OnInit, OnDestroy{ - private resizingFinished: Subscription; + resizingFinished: Subscription; constructor( private drawingsWidget: DrawingsWidget, diff --git a/src/app/cartography/widgets/drawings.ts b/src/app/cartography/widgets/drawings.ts index 3958d9bc..8e2114a2 100644 --- a/src/app/cartography/widgets/drawings.ts +++ b/src/app/cartography/widgets/drawings.ts @@ -90,7 +90,9 @@ export class DrawingsWidget implements Widget { if ((datum.element.height + evt.dy) < 0) { isReflectedVertical = true; y = topEdge; + console.log(y); datum.element.height = Math.abs(datum.element.height + evt.dy); + console.log(datum.element.height); } else { datum.element.height += evt.dy; @@ -104,9 +106,11 @@ export class DrawingsWidget implements Widget { y = evt.sourceEvent.clientY - this.context.getZeroZeroTransformationPoint().y; if ((datum.element.height + dy) < 0){ - y = topEdge; isReflectedVertical = false; + y = topEdge; + console.log(y); datum.element.height = Math.abs(datum.element.height + evt.dy); + console.log(datum.element.height); } else { datum.y = evt.sourceEvent.clientY - this.context.getZeroZeroTransformationPoint().y; datum.element.height += dy;