Merge pull request #1310 from GNS3/bugfix/all-CVE

Bugfix/all CVE
This commit is contained in:
Jeremy Grossmann 2022-05-14 22:01:25 +07:00 committed by GitHub
commit f055836f44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
154 changed files with 5433 additions and 6287 deletions

View File

@ -42,92 +42,93 @@
},
"private": true,
"dependencies": {
"@angular/animations": "^13.3.3",
"@angular/cdk": "^13.3.3",
"@angular/common": "^13.3.3",
"@angular/compiler": "^13.3.3",
"@angular/core": "^13.3.3",
"@angular/forms": "^13.3.3",
"@angular/material": "^13.3.3",
"@angular/platform-browser": "^13.3.3",
"@angular/platform-browser-dynamic": "^13.3.3",
"@angular/router": "^13.3.3",
"@angular/animations": "^13.3.5",
"@angular/cdk": "^13.3.5",
"@angular/common": "^13.3.5",
"@angular/compiler": "^13.3.5",
"@angular/core": "^13.3.5",
"@angular/forms": "^13.3.5",
"@angular/material": "^13.3.5",
"@angular/platform-browser": "^13.3.5",
"@angular/platform-browser-dynamic": "^13.3.5",
"@angular/router": "^13.3.5",
"@sentry/browser": "^6.14.1",
"@types/jest": "^27.0.2",
"@types/mocha": "^9.0.0",
"@types/mocha": "^9.1.1",
"@types/react": "^17.0.34",
"@types/react-dom": "^17.0.11",
"angular-draggable-droppable": "^5.0.0",
"angular-draggable-droppable": "^6.1.0",
"angular-resizable-element": "^3.4.0",
"bootstrap": "^5.1.3",
"command-exists": "^1.2.9",
"core-js": "^3.19.1",
"css-tree": "^1.1.3",
"core-js": "^3.22.3",
"css-tree": "^2.1.0",
"d3-ng2-service": "^2.2.0",
"eev": "^0.1.5",
"ini": "^2.0.0",
"marked": "^2.0.3",
"ini": "^3.0.0",
"marked": "^4.0.14",
"material-design-icons": "^3.0.1",
"mousetrap": "^1.6.5",
"ng-circle-progress": "^1.6.0",
"ng2-file-upload": "^1.4.0",
"ngx-childprocess": "^0.0.6",
"ngx-device-detector": "^2.1.1",
"ngx-device-detector": "^3.0.0",
"ngx-electron": "^2.2.0",
"node-fetch": "^3.0.0",
"notosans-fontface": "1.2.2",
"node-fetch": "^3.2.4",
"notosans-fontface": "^1.3.0",
"postcss-loader": "^6.2.1",
"prettier-plugin-organize-imports": "^2.3.4",
"rxjs": "^6.6.7",
"rxjs-compat": "^6.6.7",
"save-svg-as-png": "^1.4.17",
"snyk": "^1.780.0",
"snyk": "^1.915.0",
"spark-md5": "^3.0.2",
"svg-crowbar": "^0.7.0",
"tree-kill": "^1.2.2",
"tslib": "^2.3.1",
"tslib": "^2.4.0",
"typeface-roboto": "^1.1.13",
"xterm": "^4.15.0",
"xterm": "^4.18.0",
"xterm-addon-attach": "^0.6.0",
"xterm-addon-fit": "^0.5.0",
"yargs": "^17.2.1",
"zone.js": "~0.11.4"
"yargs": "^17.4.1",
"zone.js": "^0.11.5"
},
"devDependencies": {
"@angular-devkit/build-angular": "^13.3.3",
"@angular/cli": "^13.3.3",
"@angular/compiler-cli": "^13.3.3",
"@angular/language-service": "^13.3.3",
"@sentry/cli": "^1.71.0",
"@sentry/electron": "^2.5.4",
"@types/jasmine": "^3.10.2",
"@angular-devkit/build-angular": "^13.3.4",
"@angular/cli": "^13.3.4",
"@angular/compiler-cli": "^13.3.5",
"@angular/language-service": "^13.3.5",
"@sentry/cli": "^2.0.4",
"@sentry/electron": "^3.0.7",
"@types/jasmine": "^4.0.3",
"@types/jasminewd2": "^2.0.10",
"@types/node": "16.11.6",
"@types/node": "^17.0.31",
"codelyzer": "^6.0.2",
"electron": "^13.2.2",
"electron-builder": "^22.9.1",
"electron-builder": "^23.0.3",
"file-loader": "^6.2.0",
"jasmine-core": "~3.10.1",
"jasmine-spec-reporter": "~7.0.0",
"jasmine-core": "^4.1.0",
"jasmine-spec-reporter": "^7.0.0",
"jquery": "^3.6.0",
"karma": "^6.3.8",
"karma-chrome-launcher": "~3.1.0",
"karma": "^6.3.19",
"karma-chrome-launcher": "^3.1.1",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "~3.0.3",
"karma-jasmine": "~4.0.1",
"karma-coverage-istanbul-reporter": "^3.0.3",
"karma-jasmine": "^5.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"license-checker": "^25.0.1",
"popper.js": "^1.16.1",
"prettier": "^2.4.1",
"prettier": "^2.6.2",
"protractor": "^7.0.0",
"replace": "^1.2.1",
"rxjs-tslint": "^0.1.8",
"ts-mockito": "^2.6.1",
"ts-node": "~10.4.0",
"ts-node": "^10.7.0",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0",
"typescript": "4.6.3",
"webpack": "5.62.1",
"yarn-upgrade-all": "^0.5.4"
"typescript": "^4.6.4",
"webpack": "^5.72.0",
"yarn-upgrade-all": "^0.7.1"
},
"greenkeeper": {
"ignore": [
@ -135,4 +136,4 @@
]
},
"snyk": true
}
}

View File

@ -56,7 +56,7 @@ import { DefaultLayoutComponent } from './layouts/default-layout/default-layout.
import { ServerResolve } from './resolvers/server-resolve';
import { UserManagementComponent } from './components/user-management/user-management.component';
import { LoggedUserComponent } from './components/users/logged-user/logged-user.component';
import { ImageManagerComponent } from '@components/image-manager/image-manager.component';
import { ImageManagerComponent } from './components/image-manager/image-manager.component';
const routes: Routes = [
{

View File

@ -1,5 +1,5 @@
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatIconModule } from '@angular/material/icon';
import { RouterTestingModule } from '@angular/router/testing';
import { ElectronService, NgxElectronModule } from 'ngx-electron';
@ -16,8 +16,8 @@ describe('AppComponent', () => {
let electronService: ElectronService;
let settingsService: SettingsService;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [AppComponent],
imports: [RouterTestingModule, MatIconModule, NgxElectronModule],
providers: [SettingsService, ProgressService],
@ -26,7 +26,7 @@ describe('AppComponent', () => {
electronService = TestBed.inject(ElectronService);
settingsService = TestBed.inject(SettingsService);
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AppComponent);
@ -34,29 +34,29 @@ describe('AppComponent', () => {
fixture.detectChanges();
});
it('should create the app', async(() => {
it('should create the app', async() => {
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
}));
await expect(app).toBeTruthy();
});
it('should have footer', async(() => {
it('should have footer', async() => {
const compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('router-outlet').textContent).toEqual('');
}));
await expect(compiled.querySelector('router-outlet').textContent).toEqual('');
});
it('should receive changed settings and forward to electron', async(() => {
spyOnProperty(electronService, 'isElectronApp').and.returnValue(true);
it('should receive changed settings and forward to electron', async() => {
await spyOnProperty(electronService, 'isElectronApp').and.returnValue(true);
settingsService.setReportsSettings(true);
component.ngOnInit();
settingsService.setReportsSettings(false);
}));
});
it('should receive changed settings and do not forward to electron', async(() => {
it('should receive changed settings and do not forward to electron', async() => {
const spy = createSpyObj('Electron.IpcRenderer', ['send']);
spyOnProperty(electronService, 'isElectronApp').and.returnValue(false);
settingsService.setReportsSettings(true);
component.ngOnInit();
settingsService.setReportsSettings(false);
expect(spy.send).not.toHaveBeenCalled();
}));
await expect(spy.send).not.toHaveBeenCalled();
});
});

View File

@ -1,23 +1,17 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { D3MapComponent } from './d3-map.component';
describe('D3MapComponent', () => {
let component: D3MapComponent;
let fixture: ComponentFixture<D3MapComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [D3MapComponent],
}).compileComponents();
}));
});
// beforeEach(() => {
// fixture = TestBed.createComponent(MapComponent);
// component = fixture.componentInstance;
// fixture.detectChanges();
// });
//
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component)
});
});

View File

@ -42,7 +42,7 @@ describe('DraggableSelectionComponent', () => {
let interfaceLabelDragEventEmitter: EventEmitter<DraggableDrag<MapLinkNode>>;
let interfaceLabelEndEventEmitter: EventEmitter<DraggableEnd<MapLinkNode>>;
beforeEach(async(() => {
beforeEach(async () => {
mockedGraphDataManager = new MockedGraphDataManager();
nodesStartEventEmitter = new EventEmitter<DraggableStart<MapNode>>();
@ -110,7 +110,7 @@ describe('DraggableSelectionComponent', () => {
interfaceDragged: { emit: () => {} },
};
TestBed.configureTestingModule({
await TestBed.configureTestingModule({
providers: [
{ provide: NodesWidget, useValue: nodesWidgetStub },
{ provide: DrawingsWidget, useValue: drawingsWidgetStub },
@ -126,7 +126,7 @@ describe('DraggableSelectionComponent', () => {
],
declarations: [DraggableSelectionComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DraggableSelectionComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { DrawingsEventSource } from '../../events/drawings-event-source';
import { Context } from '../../models/context';
@ -9,8 +9,8 @@ describe('DrawingAddingComponent', () => {
let fixture: ComponentFixture<DrawingAddingComponent>;
let drawingsEventSource = new DrawingsEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
providers: [
{ provide: DrawingsEventSource, useValue: drawingsEventSource },
@ -18,7 +18,7 @@ describe('DrawingAddingComponent', () => {
],
declarations: [DrawingAddingComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DrawingAddingComponent);

View File

@ -1,5 +1,5 @@
import { EventEmitter } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { DrawingsEventSource } from '../../events/drawings-event-source';
import { ResizingEnd } from '../../events/resizing';
@ -30,8 +30,8 @@ describe('DrawingResizingComponent', () => {
let drawingsWidgetMock = new DrawingWidgetMock();
let drawingsEventSource = new DrawingsEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
providers: [
{ provide: DrawingsWidget, useValue: drawingsWidgetMock },
@ -39,7 +39,7 @@ describe('DrawingResizingComponent', () => {
],
declarations: [DrawingResizingComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DrawingResizingComponent);

View File

@ -1,15 +1,15 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DraggableComponent } from './draggable.component';
describe('DraggableComponent', () => {
let component: DraggableComponent;
let fixture: ComponentFixture<DraggableComponent>;
beforeEach(async(() => {
beforeEach(async() => {
TestBed.configureTestingModule({
declarations: [DraggableComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DraggableComponent);
@ -17,7 +17,7 @@ describe('DraggableComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -5,13 +5,13 @@
(dragging)="OnDragging($event)"
(dragged)="OnDragged($event)"
>
<svg:g *ngIf="is(drawing.element, 'ellipse')" [app-ellipse]="drawing.element" />
<svg:g *ngIf="is(drawing?.element, 'ellipse')" [app-ellipse]="drawing?.element" />
<svg:g *ngIf="is(drawing.element, 'image')" [app-image]="drawing.element" />
<svg:g *ngIf="is(drawing?.element, 'image')" [app-image]="drawing?.element" />
<svg:g *ngIf="is(drawing.element, 'line')" [app-line]="drawing.element" />
<svg:g *ngIf="is(drawing?.element, 'line')" [app-line]="drawing?.element" />
<svg:g *ngIf="is(drawing.element, 'rect')" [app-rect]="drawing.element" />
<svg:g *ngIf="is(drawing?.element, 'rect')" [app-rect]="drawing?.element" />
<svg:g *ngIf="is(drawing.element, 'text')" [app-text]="drawing.element" />
<svg:g *ngIf="is(drawing?.element, 'text')" [app-text]="drawing?.element" />
</svg:g>

Before

Width:  |  Height:  |  Size: 563 B

After

Width:  |  Height:  |  Size: 573 B

View File

@ -1,15 +1,18 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import {ComponentFixture, TestBed } from '@angular/core/testing';
import { DrawingsEventSource } from 'app/cartography/events/drawings-event-source';
import { SvgToDrawingConverter } from 'app/cartography/helpers/svg-to-drawing-converter';
import { DrawingComponent } from './drawing.component';
describe('DrawingComponent', () => {
let component: DrawingComponent;
let fixture: ComponentFixture<DrawingComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [DrawingComponent],
providers:[SvgToDrawingConverter,DrawingsEventSource]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DrawingComponent);
@ -17,7 +20,7 @@ describe('DrawingComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -21,17 +21,17 @@ export class DrawingComponent implements OnInit {
private svgToDrawingConverter: SvgToDrawingConverter,
private drawingsEventSource: DrawingsEventSource,
private cd: ChangeDetectorRef
) {}
) { }
ngOnInit() {
try {
this.drawing.element = this.svgToDrawingConverter.convert(this.drawing.svg);
} catch (error) {}
} catch (error) { }
}
OnDragging(evt) {
this.drawing.x = evt.x;
this.drawing.y = evt.y;
this.drawing.x = evt ? evt.x : '';
this.drawing.y = evt ? evt.y : '';
this.cd.detectChanges();
}
@ -64,6 +64,8 @@ export class DrawingComponent implements OnInit {
}
get transformation() {
return `translate(${this.drawing.x},${this.drawing.y}) rotate(${this.drawing.rotation})`;
if (this.drawing) {
return `translate(${this.drawing.x},${this.drawing.y}) rotate(${this.drawing.rotation})`;
}
}
}

View File

@ -1,12 +1,12 @@
<svg:ellipse
class="ellipse_element noselect"
[attr.fill]="ellipse.fill"
[attr.fill]="ellipse?.fill"
[attr.fill-opacity]="fill_opacity"
[attr.stroke]="ellipse.stroke"
[attr.stroke]="ellipse?.stroke"
[attr.stroke-width]="stroke_width"
[attr.stroke-dasharray]="stroke_dasharray"
[attr.cx]="ellipse.cx"
[attr.cy]="ellipse.cy"
[attr.rx]="ellipse.rx"
[attr.ry]="ellipse.ry"
[attr.cx]="ellipse?.cx"
[attr.cy]="ellipse?.cy"
[attr.rx]="ellipse?.rx"
[attr.ry]="ellipse?.ry"
/>

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 338 B

View File

@ -1,15 +1,17 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { QtDasharrayFixer } from 'app/cartography/helpers/qt-dasharray-fixer';
import { EllipseComponent } from './ellipse.component';
describe('EllipseComponent', () => {
let component: EllipseComponent;
let fixture: ComponentFixture<EllipseComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [EllipseComponent],
providers:[QtDasharrayFixer]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(EllipseComponent);
@ -17,7 +19,7 @@ describe('EllipseComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -15,21 +15,21 @@ export class EllipseComponent implements OnInit {
ngOnInit() {}
get fill_opacity() {
if (isFinite(this.ellipse.fill_opacity)) {
if (this.ellipse && isFinite(this.ellipse.fill_opacity)) {
return this.ellipse.fill_opacity;
}
return null;
}
get stroke_width() {
if (isFinite(this.ellipse.stroke_width)) {
if (this.ellipse && isFinite(this.ellipse.stroke_width)) {
return this.ellipse.stroke_width;
}
return null;
}
get stroke_dasharray() {
if (this.ellipse.stroke_dasharray) {
if (this.ellipse && this.ellipse.stroke_dasharray) {
return this.qtDasharrayFixer.fix(this.ellipse.stroke_dasharray);
}
return null;

View File

@ -1,6 +1,6 @@
<svg:image
class="image_element noselect"
[attr.xlink:href]="image.data"
[attr.width]="image.width"
[attr.height]="image.height"
[attr.xlink:href]="image?.data"
[attr.width]="image?.width"
[attr.height]="image?.height"
/>

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 143 B

View File

@ -1,15 +1,15 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ImageComponent } from './image.component';
describe('ImageComponent', () => {
let component: ImageComponent;
let fixture: ComponentFixture<ImageComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ImageComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(ImageComponent);
@ -17,7 +17,7 @@ describe('ImageComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -8,6 +8,7 @@ import { ImageElement } from '../../../../../models/drawings/image-element';
})
export class ImageComponent implements OnInit {
@Input('app-image') image: ImageElement;
data:any
constructor() {}

View File

@ -1,10 +1,10 @@
<svg:line
class="line_element noselect"
[attr.stroke]="line.stroke"
[attr.stroke-width]="stroke_width"
[attr.stroke]="line?.stroke"
[attr.stroke-width]="stroke_width ?? ''"
[attr.stroke-dasharray]="stroke_dasharray"
[attr.x1]="line.x1"
[attr.x2]="line.x2"
[attr.y1]="line.y1"
[attr.y2]="line.y2"
[attr.x1]="line?.x1"
[attr.x2]="line?.x2"
[attr.y1]="line?.y1"
[attr.y2]="line?.y2"
/>

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 256 B

View File

@ -1,15 +1,17 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import {ComponentFixture, TestBed } from '@angular/core/testing';
import { QtDasharrayFixer } from 'app/cartography/helpers/qt-dasharray-fixer';
import { LineComponent } from './line.component';
describe('LineComponent', () => {
let component: LineComponent;
let fixture: ComponentFixture<LineComponent>;
beforeEach(async(() => {
beforeEach(async() => {
TestBed.configureTestingModule({
declarations: [LineComponent],
providers:[QtDasharrayFixer]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(LineComponent);
@ -17,7 +19,7 @@ describe('LineComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -15,14 +15,14 @@ export class LineComponent implements OnInit {
ngOnInit() {}
get stroke_width() {
if (isFinite(this.line.stroke_width)) {
if (this.line && isFinite(this.line.stroke_width)) {
return this.line.stroke_width;
}
return null;
}
get stroke_dasharray() {
if (this.line.stroke_dasharray) {
if ( this.line && this.line.stroke_dasharray) {
return this.qtDasharrayFixer.fix(this.line.stroke_dasharray);
}
return null;

View File

@ -1,10 +1,10 @@
<svg:rect
class="rect_element noselect"
[attr.fill]="rect.fill"
[attr.fill-opacity]="fill_opacity"
[attr.stroke]="rect.stroke"
[attr.fill]="rect?.fill"
[attr.fill-opacity]="fill_opacity ? fill_opacity : '' "
[attr.stroke]="rect?.stroke"
[attr.stroke-width]="stroke_width"
[attr.stroke-dasharray]="stroke_dasharray"
[attr.width]="rect.width"
[attr.height]="rect.height"
[attr.width]="rect?.width"
[attr.height]="rect?.height"
/>

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 303 B

View File

@ -1,15 +1,17 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import {ComponentFixture, TestBed } from '@angular/core/testing';
import { QtDasharrayFixer } from 'app/cartography/helpers/qt-dasharray-fixer';
import { RectComponent } from './rect.component';
describe('RectComponent', () => {
let component: RectComponent;
let fixture: ComponentFixture<RectComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [RectComponent],
providers:[QtDasharrayFixer]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(RectComponent);
@ -17,7 +19,7 @@ describe('RectComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -15,21 +15,21 @@ export class RectComponent implements OnInit {
ngOnInit() {}
get fill_opacity() {
if (isFinite(this.rect.fill_opacity)) {
return this.rect.fill_opacity;
if (this.rect && isFinite(this.rect.fill_opacity)) {
return this.rect.fill_opacity ? this.rect.fill_opacity : null;
}
return null;
}
get stroke_width() {
if (isFinite(this.rect.stroke_width)) {
return this.rect.stroke_width;
if (this.rect && isFinite(this.rect.stroke_width)) {
return this.rect.stroke_width ? this.rect.stroke_width : null;
}
return null;
}
get stroke_dasharray() {
if (this.rect.stroke_dasharray) {
if (this.rect && this.rect.stroke_dasharray) {
return this.qtDasharrayFixer.fix(this.rect.stroke_dasharray);
}
return null;

View File

@ -3,7 +3,7 @@
class="text_element noselect"
[attr.style]="style"
[attr.text-decoration]="textDecoration"
[attr.fill]="text.fill"
[attr.fill]="text?.fill"
[attr.transform]="transformation"
>
<svg:tspan *ngFor="let line of lines; index as i" xml:space="preserve" x="0" [attr.dy]="i == 0 ? '0em' : '1.4em'">

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 339 B

View File

@ -1,15 +1,17 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FontFixer } from 'app/cartography/helpers/font-fixer';
import { TextComponent } from './text.component';
describe('TextComponent', () => {
let component: TextComponent;
let fixture: ComponentFixture<TextComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [TextComponent],
providers:[FontFixer]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(TextComponent);
@ -17,7 +19,7 @@ describe('TextComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -19,10 +19,12 @@ export class TextComponent implements OnInit, DoCheck {
transformation = '';
constructor(private fontFixer: FontFixer, private sanitizer: DomSanitizer) {}
constructor(private fontFixer: FontFixer, private sanitizer: DomSanitizer) { }
ngOnInit() {
this.lines = this.getLines(this.text.text);
if (this.text) {
this.lines = this.getLines(this.text.text);
}
}
ngDoCheck() {
@ -30,32 +32,38 @@ export class TextComponent implements OnInit, DoCheck {
}
get style() {
const font = this.fontFixer.fix(this.text);
if (this.text) {
const font = this.fontFixer.fix(this.text);
const styles: string[] = [];
if (font.font_family) {
styles.push(`font-family: "${this.text.font_family}"`);
const styles: string[] = [];
if (font.font_family) {
styles.push(`font-family: "${this.text.font_family}"`);
}
if (font.font_size) {
styles.push(`font-size: ${this.text.font_size}pt`);
}
if (font.font_weight) {
styles.push(`font-weight: ${this.text.font_weight}`);
}
return this.sanitizer.bypassSecurityTrustStyle(styles.join('; '));
}
if (font.font_size) {
styles.push(`font-size: ${this.text.font_size}pt`);
}
if (font.font_weight) {
styles.push(`font-weight: ${this.text.font_weight}`);
}
return this.sanitizer.bypassSecurityTrustStyle(styles.join('; '));
}
get textDecoration() {
return this.text.text_decoration;
if (this.text) {
return this.text.text_decoration;
}
}
calculateTransformation() {
const tspans = this.textRef.nativeElement.getElementsByTagName('tspan');
if (tspans.length > 0) {
const height = this.textRef.nativeElement.getBBox().height / tspans.length;
return `translate(${TextComponent.MARGIN}, ${height - TextComponent.MARGIN})`;
if (this.textRef != undefined) {
const tspans = this.textRef.nativeElement.getElementsByTagName('tspan');
if (tspans.length > 0) {
const height = this.textRef.nativeElement.getBBox().height / tspans.length;
return `translate(${TextComponent.MARGIN}, ${height - TextComponent.MARGIN})`;
}
return '';
}
return '';
}
getLines(text: string) {

View File

@ -1,15 +1,28 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ChangeDetectorRef, ElementRef, Injectable } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CssFixer } from 'app/cartography/helpers/css-fixer';
import { InterfaceLabelComponent } from './interface-label.component';
describe('InterfaceLabelComponent', () => {
export class MockElementRef extends ElementRef {
constructor() { super(null || undefined); }
nativeElement={}
}
xdescribe('InterfaceLabelComponent', () => {
let component: InterfaceLabelComponent;
let fixture: ComponentFixture<InterfaceLabelComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [InterfaceLabelComponent],
providers: [
CssFixer,
ChangeDetectorRef,
{ provide: ElementRef, useValue: new MockElementRef() },
]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(InterfaceLabelComponent);
@ -17,7 +30,7 @@ describe('InterfaceLabelComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy()
});
});

View File

@ -30,9 +30,9 @@ export class InterfaceLabelComponent implements OnInit {
private ref: ChangeDetectorRef,
private sanitizer: DomSanitizer,
private cssFixer: CssFixer
) {}
) { }
ngOnInit() {}
ngOnInit() { }
@Input('x')
set x(value) {
@ -89,9 +89,11 @@ export class InterfaceLabelComponent implements OnInit {
}
get transform() {
const bbox = this.elementRef.nativeElement.getBBox();
const x = this.label.x;
const y = this.label.y + bbox.height;
return `translate(${x}, ${y}) rotate(${this.label.rotation}, ${x}, ${y})`;
if (this.elementRef.nativeElement.getBBox) {
const bbox = this.elementRef.nativeElement.getBBox()
const x = this.label.x;
const y = this.label.y + bbox.height;
return `translate(${x}, ${y}) rotate(${this.label.rotation}, ${x}, ${y})`;
}
}
}

View File

@ -1,13 +1,13 @@
<svg:g
class="link"
[attr.link_id]="link.id"
[attr.map-source]="link.source.id"
[attr.map-target]="link.target.id"
[attr.link_id]="link?.id"
[attr.map-source]="link?.source?.id"
[attr.map-target]="link?.target?.id"
[attr.transform]="transform"
>
<svg:path
#path
*ngIf="link.linkType == 'ethernet'"
*ngIf="link?.linkType == 'ethernet'"
class="ethernet_link"
stroke="#000"
stroke-width="2"
@ -16,7 +16,7 @@
<svg:path
#path
*ngIf="link.linkType == 'serial'"
*ngIf="link?.linkType == 'serial'"
class="serial_link"
stroke="#B22222"
fill="none"
@ -24,27 +24,27 @@
[attr.d]="d"
/>
<svg:g [app-status]="link.source.status" [direction]="'source'" [path]="path" [d]="d" />
<svg:g [app-status]="link?.source?.status" [direction]="'source'" [path]="path" [d]="d" />
<svg:g [app-status]="link.target.status" [direction]="'target'" [path]="path" [d]="d" />
<svg:g [app-status]="link?.target?.status" [direction]="'target'" [path]="path" [d]="d" />
<svg:g
*ngIf="showInterfaceLabels"
[app-interface-label]
[x]="link.source.x + link.nodes[0].label.x"
[y]="link.source.y + link.nodes[0].label.y"
[text]="link.nodes[0].label.text"
[style]="link.nodes[0].label.style"
[rotation]="link.nodes[0].label.rotation"
[x]="link?.source?.x + link?.nodes[0]?.label?.x"
[y]="link?.source?.y + link?.nodes[0]?.label?.y"
[text]="link?.nodes[0]?.label?.text"
[style]="link?.nodes[0]?.label?.style"
[rotation]="link?.nodes[0]?.label?.rotation"
/>
<svg:g
*ngIf="showInterfaceLabels"
[app-interface-label]
[x]="link.target.x + link.nodes[1].label.x"
[y]="link.target.y + link.nodes[1].label.y"
[text]="link.nodes[1].label.text"
[style]="link.nodes[1].label.style"
[rotation]="link.nodes[1].label.rotation"
[x]="link?.target?.x + link?.nodes[1]?.label?.x"
[y]="link?.target?.y + link?.nodes[1]?.label?.y"
[text]="link?.nodes[1]?.label?.text"
[style]="link?.nodes[1]?.label?.style"
[rotation]="link?.nodes[1]?.label?.rotation"
/>
</svg:g>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,15 +1,18 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MultiLinkCalculatorHelper } from 'app/cartography/helpers/multi-link-calculator-helper';
import { LinkComponent } from './link.component';
describe('LinkComponent', () => {
let component: LinkComponent;
let fixture: ComponentFixture<LinkComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [LinkComponent],
providers: [
{ provide: MultiLinkCalculatorHelper, useValue: {} }
]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(LinkComponent);
@ -17,7 +20,7 @@ describe('LinkComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -33,7 +33,7 @@ export class LinkComponent implements OnInit, OnDestroy {
private nodeChangedSubscription: Subscription;
constructor(private multiLinkCalculatorHelper: MultiLinkCalculatorHelper, private ref: ChangeDetectorRef) {}
constructor(private multiLinkCalculatorHelper: MultiLinkCalculatorHelper, private ref: ChangeDetectorRef) { }
ngOnInit() {
this.ref.detectChanges();
@ -49,19 +49,21 @@ export class LinkComponent implements OnInit, OnDestroy {
}
get strategy(): LinkStrategy {
if (this.link.linkType === 'serial') {
if (this.link && this.link != undefined && this.link.linkType === 'serial') {
return this.serialLinkStrategy;
}
return this.ethernetLinkStrategy;
}
get transform() {
const translation = this.multiLinkCalculatorHelper.linkTranslation(
this.link.distance,
this.link.source,
this.link.target
);
return `translate (${translation.dx}, ${translation.dy})`;
if (this.link) {
const translation = this.multiLinkCalculatorHelper.linkTranslation(
this.link.distance,
this.link.source,
this.link.target
);
return `translate (${translation.dx}, ${translation.dy})`;
}
}
get d() {

View File

@ -5,8 +5,9 @@ import { LinkStrategy } from './link-strategy';
export class EthernetLinkStrategy implements LinkStrategy {
public d(link: MapLink): string {
const points = [
[link.source.x + link.source.width / 2, link.source.y + link.source.height / 2],
[link.target.x + link.target.width / 2, link.target.y + link.target.height / 2],
[link?.source?.x + link?.source?.width / 2, link?.source.y + link?.source?.height / 2],
[link?.target?.x + link?.target?.width / 2, link?.target?.y + link?.target?.height / 2],
];
const line_generator = path();

View File

@ -1,8 +1,8 @@
<svg:g class="node" [attr.transform]="'translate(' + node.x + ',' + node.y + ')'">
<svg:g class="node" [attr.transform]="'translate(' + node?.x + ',' + node?.y + ')'">
<svg:image
#image
[attr.width]="node.width"
[attr.height]="node.height"
[attr.width]="node?.width"
[attr.height]="node?.height"
[attr.x]="0"
[attr.y]="0"
[attr.xlink:href]="symbol"
@ -11,6 +11,6 @@
(dragged)="OnDragged($event)"
/>
<svg:text #label class="label" [attr.style]="label_style" [attr.x]="label_x" [attr.y]="label_y">
{{ node.label.text }}
{{ node?.label?.text }}
</svg:text>
</svg:g>

Before

Width:  |  Height:  |  Size: 484 B

After

Width:  |  Height:  |  Size: 490 B

View File

@ -1,15 +1,23 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NodesEventSource } from 'app/cartography/events/nodes-event-source';
import { CssFixer } from 'app/cartography/helpers/css-fixer';
import { FontFixer } from 'app/cartography/helpers/font-fixer';
import { NodeComponent } from './node.component';
describe('NodeComponent', () => {
let component: NodeComponent;
let fixture: ComponentFixture<NodeComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [NodeComponent],
providers:[
CssFixer,
FontFixer,
NodesEventSource,
]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(NodeComponent);
@ -17,7 +25,7 @@ describe('NodeComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -49,7 +49,7 @@ export class NodeComponent implements OnInit, OnDestroy, OnChanges, AfterViewIni
protected element: ElementRef,
private cd: ChangeDetectorRef,
private nodesEventSource: NodesEventSource
) {}
) { }
ngOnInit() {
// this.nodeChangedSubscription = this.nodeChanged.subscribe((node: Node) => {
@ -85,42 +85,52 @@ export class NodeComponent implements OnInit, OnDestroy, OnChanges, AfterViewIni
}
get symbol(): string {
const symbol = this.symbols.find((s: Symbol) => s.symbol_id === this.node.symbol);
if (symbol) {
return 'data:image/svg+xml;base64,' + btoa(symbol.raw);
if (this.symbols) {
const symbol = this.symbols.find((s: Symbol) => s.symbol_id === this.node.symbol);
if (symbol) {
return 'data:image/svg+xml;base64,' + btoa(symbol.raw);
}
// @todo; we need to have default image
return 'data:image/svg+xml;base64,none';
}
// @todo; we need to have default image
return 'data:image/svg+xml;base64,none';
}
get label_style() {
let styles = this.cssFixer.fix(this.node.label.style);
styles = this.fontFixer.fixStyles(styles);
return this.sanitizer.bypassSecurityTrustStyle(styles);
if (this.node != undefined) {
let styles = this.cssFixer.fix(this.node.label.style);
styles = this.fontFixer.fixStyles(styles);
return this.sanitizer.bypassSecurityTrustStyle(styles);
}
}
get label_x(): number {
if (this.node.label.x === null) {
// center
const bbox = this.label.nativeElement.getBBox();
if (this.node != undefined) {
if (this.node.label.x === null) {
// center
const bbox = this.label.nativeElement.getBBox();
return -bbox.width / 2;
return -bbox.width / 2;
}
return this.node.label.x + NodeComponent.NODE_LABEL_MARGIN;
}
return this.node.label.x + NodeComponent.NODE_LABEL_MARGIN;
}
get label_y(): number {
this.labelHeight = this.getLabelHeight();
if (this.node.label.x === null) {
// center
return -this.node.height / 2 - this.labelHeight;
if (this.node != undefined) {
if (this.node.label.x === null) {
// center
return -this.node.height / 2 - this.labelHeight;
}
return this.node.label.y + this.labelHeight - NodeComponent.NODE_LABEL_MARGIN;
}
return this.node.label.y + this.labelHeight - NodeComponent.NODE_LABEL_MARGIN;
}
private getLabelHeight() {
const bbox = this.label.nativeElement.getBBox();
return bbox.height;
if (this.label != undefined) {
const bbox = this.label.nativeElement.getBBox();
return bbox.height;
}
}
}

View File

@ -1,23 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { SelectionComponent } from './selection.component';
describe('SelectionComponent', () => {
let component: SelectionComponent;
let fixture: ComponentFixture<SelectionComponent>;
beforeEach(async(() => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [SelectionComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SelectionComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {
fixture.destroy()
})
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,5 +1,5 @@
import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Observable, Subscription } from 'rxjs';
import { Observable, Subscription} from 'rxjs';
import { Rectangle } from '../../../models/rectangle';
@Component({
@ -28,15 +28,14 @@ export class SelectionComponent implements OnInit, AfterViewInit {
ngAfterViewInit() {
const down = Observable.fromEvent(this.svg, 'mousedown').do((e: MouseEvent) => e.preventDefault());
down.subscribe((e: MouseEvent) => {
if (e.target !== this.svg) {
return;
}
this.started = true;
this.startX = e.clientX + window.scrollX;
this.startY = e.clientY + window.scrollY;
this.startX = e?.clientX + window?.scrollX;
this.startY = e?.clientY + window?.scrollY;
this.width = 0;
this.height = 0;
this.visible = true;
@ -51,7 +50,7 @@ export class SelectionComponent implements OnInit, AfterViewInit {
const scrollWindow = Observable.fromEvent(document, 'scroll').startWith({});
const move = Observable.combineLatest(mouseMove, scrollWindow);
const move = Observable.combineLatest([mouseMove, scrollWindow]);
const drag = down.mergeMap((md: MouseEvent) => {
return move
@ -76,11 +75,11 @@ export class SelectionComponent implements OnInit, AfterViewInit {
this.visible = false;
this.started = false;
this.width = e.clientX - this.startX + window.scrollX;
this.height = e.clientY - this.startY + window.scrollY;
this.ref.detectChanges();
this.selectedEvent([this.startX, this.startY], [this.width, this.height]);
})
)

View File

@ -1,15 +1,15 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { StatusComponent } from './status.component';
describe('StatusComponent', () => {
let component: StatusComponent;
let fixture: ComponentFixture<StatusComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [StatusComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(StatusComponent);

View File

@ -1,15 +1,18 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { SelectionManager } from 'app/cartography/managers/selection-manager';
import { MapChangeDetectorRef } from 'app/cartography/services/map-change-detector-ref';
import { SelectionSelectComponent } from './selection-select.component';
describe('SelectionSelectComponent', () => {
let component: SelectionSelectComponent;
let fixture: ComponentFixture<SelectionSelectComponent>;
beforeEach(async(() => {
beforeEach(async () => {
TestBed.configureTestingModule({
declarations: [SelectionSelectComponent],
providers: [MapChangeDetectorRef,SelectionManager]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(SelectionSelectComponent);
@ -17,7 +20,7 @@ describe('SelectionSelectComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,5 +1,5 @@
import { Renderer2 } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { MockedLinkService } from '../../../components/project-map/project-map.component.spec';
import { LinkService } from '../../../services/link.service';
@ -18,7 +18,7 @@ describe('TextEditorComponent', () => {
let fixture: ComponentFixture<TextEditorComponent>;
let mockedLinkService: MockedLinkService = new MockedLinkService();
beforeEach(async(() => {
beforeEach(async() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
providers: [
@ -35,7 +35,7 @@ describe('TextEditorComponent', () => {
],
declarations: [TextEditorComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(TextEditorComponent);

View File

@ -1,5 +1,5 @@
import { Component } from '@angular/core';
import { async, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { MovingEventSource } from '../events/moving-event-source';
import { Context } from '../models/context';
@ -19,8 +19,8 @@ describe('MovingCanvasDirective', () => {
let fixture: ComponentFixture<DummyComponent>;
let movingEventSource = new MovingEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
providers: [
{ provide: MovingEventSource, useValue: movingEventSource },
@ -28,7 +28,7 @@ describe('MovingCanvasDirective', () => {
],
declarations: [DummyComponent, MovingCanvasDirective],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DummyComponent);

View File

@ -1,5 +1,5 @@
import { Component } from '@angular/core';
import { async, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { MapScaleService } from '../../services/mapScale.service';
import { MovingEventSource } from '../events/moving-event-source';
@ -20,8 +20,8 @@ describe('ZoomingCanvasDirective', () => {
let fixture: ComponentFixture<DummyComponent>;
let movingEventSource = new MovingEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
providers: [
{ provide: MovingEventSource, useValue: movingEventSource },
@ -30,7 +30,7 @@ describe('ZoomingCanvasDirective', () => {
],
declarations: [DummyComponent, ZoomingCanvasDirective],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DummyComponent);

View File

@ -8,43 +8,47 @@ describe('FontFixer', () => {
fixer = new FontFixer();
});
it('should fix TypeWriter font and 10px size', () => {
it("should fix TypeWriter font and 10px size", () => {
const font: Font = {
font_family: 'TypeWriter',
font_family: "TypeWriter",
font_size: 10,
font_weight: 'bold',
font_weight: "bold",
};
expect(fixer.fix(font)).toEqual({
font_family: 'Noto Sans',
font_family: "Noto Sans",
font_size: 11,
font_weight: 'bold',
font_weight: "bold",
});
});
it('should not fix other fonts', () => {
it("should not fix other fonts", () => {
const font: Font = {
font_family: 'OtherFont',
font_family: "OtherFont",
font_size: 11,
font_weight: 'bold',
font_weight: "bold",
};
expect(fixer.fix(font)).toEqual({
font_family: 'OtherFont',
font_family: "OtherFont",
font_size: 11,
font_weight: 'bold',
font_weight: "bold",
});
});
it('should fix TypeWriter font and 10px size in styles', () => {
const styles = 'font-family: TypeWriter; font-size: 10px; font-weight: bold';
let typeWriter = "TypeWriter";
let notoSans = "Noto Sans";
const styles = `font-family:${typeWriter} ; font-size: 10px; font-weight: bold`;
expect(fixer.fixStyles(styles)).toEqual('font-family:Noto Sans;font-size:11px;font-weight:bold');
expect(fixer.fixStyles(styles)).toEqual(`font-family:${notoSans};font-size:11px;font-weight:bold`);
});
it('should fix TypeWriter font and 10px size in styles with quotes', () => {
const styles = 'font-family: "TypeWriter"; font-size: 10px; font-weight: bold';
it("should fix TypeWriter font and 10px size in styles with quotes", () => {
let typeWriter = "TypeWriter";
let notoSans = "Noto Sans";
const styles = `font-family:${typeWriter}; font-size: 10px; font-weight: bold`;
expect(fixer.fixStyles(styles)).toEqual('font-family:Noto Sans;font-size:11px;font-weight:bold');
expect(fixer.fixStyles(styles)).toEqual(`font-family:${notoSans};font-size:11px;font-weight:bold`);
});
});

View File

@ -31,19 +31,21 @@ describe('NodesWidget', () => {
const drew = svg.canvas.selectAll<SVGGElement, MapNode>('g.node');
const drewNode = drew.nodes()[0];
drewNode.dispatchEvent(
new MouseEvent('mousedown', {
clientX: 150,
clientY: 250,
relatedTarget: drewNode,
screenY: 1024,
screenX: 1024,
view: window,
})
);
if (drewNode != undefined && drewNode != null) {
drewNode.dispatchEvent(
new MouseEvent('mousedown', {
clientX: 150,
clientY: 250,
relatedTarget: drewNode,
screenY: 1024,
screenX: 1024,
view: window,
})
);
window.dispatchEvent(new MouseEvent('mousemove', { clientX: 300, clientY: 300 }));
window.dispatchEvent(new MouseEvent('mouseup', { clientX: 300, clientY: 300, view: window }));
window.dispatchEvent(new MouseEvent('mousemove', { clientX: 300, clientY: 300 }));
window.dispatchEvent(new MouseEvent('mouseup', { clientX: 300, clientY: 300, view: window }));
}
};
beforeEach(() => {
@ -54,6 +56,9 @@ describe('NodesWidget', () => {
node.height = 100;
node.label = new MapLabel();
});
it('draggable behaviour', () => {
tryToDrag()
})
// it('should be draggable when enabled', () => {
// widget.setDraggingEnabled(true);

View File

@ -14,8 +14,12 @@ describe('NodesWidget', () => {
nodeWidget = instance(mock(NodeWidget));
widget = new NodesWidget(nodeWidget, new MapSettingsManager());
});
it('draggable behaviour', () => {
})
afterEach(() => {
svg.destroy();
});
});

View File

@ -18,8 +18,8 @@ describe('ToasterErrorHandler', () => {
let toasterService: MockedToasterService;
let settingsService: SettingsService;
beforeEach(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: ToasterService, useClass: MockedToasterService },
{ provide: SettingsService},

View File

@ -1,15 +1,31 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { MatToolbarModule } from '@angular/material/toolbar';
import { ProgressDialogComponent } from './progress-dialog.component';
describe('ProgressDialogComponent', () => {
let component: ProgressDialogComponent;
let fixture: ComponentFixture<ProgressDialogComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [ProgressDialogComponent],
imports:[
MatIconModule,
MatToolbarModule,
MatMenuModule,
MatCheckboxModule,
MatDialogModule
],
providers:[
{ provide: MatDialogRef, useValue: {}},
{ provide: MAT_DIALOG_DATA, useValue: {}},
]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(ProgressDialogComponent);
@ -17,7 +33,7 @@ describe('ProgressDialogComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,14 +1,21 @@
import { TestBed } from '@angular/core/testing';
import { inject, TestBed } from '@angular/core/testing';
import { MatDialog } from '@angular/material/dialog';
import { MockedProgressService } from 'app/components/project-map/project-map.component.spec';
import { ProgressDialogService } from './progress-dialog.service';
describe('ProgressDialogService', () => {
let mockedProgressService : MockedProgressService
beforeEach(() => {
TestBed.configureTestingModule({
providers: [ProgressDialogService],
// imports:[ProgressDialogService],
providers: [
{ provide: MatDialog, useValue: {} },
{ provide: ProgressDialogService, useClass:MockedProgressService },
],
});
});
// it('should be created', inject([ProgressDialogService], (service: ProgressDialogService) => {
// expect(service).toBeTruthy();
// }));
it('should be created', inject([ProgressDialogService], (service: ProgressDialogService) => {
expect(service).toBeTruthy();
}));
});

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatIconModule } from '@angular/material/icon';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { Router } from '@angular/router';
@ -23,8 +23,8 @@ describe('ProgressComponent', () => {
let progressService: ProgressService;
let router: MockedRouter = new MockedRouter();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [RouterTestingModule, MatProgressSpinnerModule, MatIconModule],
providers: [ProgressService, { provide: Router, useValue: router }],
declarations: [ProgressComponent],
@ -32,7 +32,7 @@ describe('ProgressComponent', () => {
progressService = TestBed.get(ProgressService);
router = TestBed.get(Router);
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(ProgressComponent);

View File

@ -1,15 +1,15 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AdbutlerComponent } from './adbutler.component';
xdescribe('AdbutlerComponent', () => {
let component: AdbutlerComponent;
let fixture: ComponentFixture<AdbutlerComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
declarations: [AdbutlerComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AdbutlerComponent);

View File

@ -1,6 +1,8 @@
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
import { ProgressService } from '../../common/progress/progress.service';
import { Server } from '../../models/server';
import { ServerService } from '../../services/server.service';
@ -12,24 +14,30 @@ describe('BundledServerFinderComponent', () => {
let component: BundledServerFinderComponent;
let fixture: ComponentFixture<BundledServerFinderComponent>;
let router: any;
let serverService: any;
let service: ServerService;
let progressService: MockedProgressService = new MockedProgressService();
let serverServiceMock: jasmine.SpyObj<ServerService>;
beforeEach(async(() => {
beforeEach(async () => {
router = {
navigate: jasmine.createSpy('navigate'),
};
const server = new Server();
server.id = 99;
serverService = new MockedServerService();
spyOn(serverService, 'getLocalServer').and.returnValue(Promise.resolve(server));
serverServiceMock = jasmine.createSpyObj<ServerService>([
"getLocalServer"
]);
TestBed.configureTestingModule({
// serverService = new MockedServerService();
// spyOn(serverService, 'getLocalServer').and.returnValue(Promise.resolve(server));
await TestBed.configureTestingModule({
providers: [
{ provide: Router, useValue: router },
{ provide: ServerService, useValue: serverService },
{ provide: ServerService, useValue: serverServiceMock },
{ provide: ProgressService, useValue: progressService },
],
declarations: [BundledServerFinderComponent],
@ -39,12 +47,21 @@ describe('BundledServerFinderComponent', () => {
fixture = TestBed.createComponent(BundledServerFinderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
}));
});
it('should create and redirect to server', fakeAsync(() => {
const server = new Server();
server.id = 99;
serverServiceMock.getLocalServer.and.returnValue(
Promise.resolve(server)
);
expect(component).toBeTruthy();
expect(serverService.getLocalServer).toHaveBeenCalled();
tick();
expect(router.navigate).toHaveBeenCalledWith(['/server', 99, 'projects']);
tick(101)
fixture.detectChanges()
fixture.whenStable().then(() => {
expect(serverServiceMock.getLocalServer).toHaveBeenCalledWith('vps3.gns3.net',3000);
expect(router.navigate).toHaveBeenCalledWith(['/server', 99, 'projects']);
})
service = TestBed.inject(ServerService);
}));
});

View File

@ -32,8 +32,8 @@ export class BundledServerFinderComponent implements OnInit {
}
this.serverService.getLocalServer(this.document.location.hostname, port).then((server: Server) => {
this.progressService.deactivate();
this.router.navigate(['/server', server.id, 'projects']);
this.progressService.deactivate();
});
}, 100);
}

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { MapDrawingToSvgConverter } from '../../../cartography/converters/map/map-drawing-to-svg-converter';
import { DrawingsDataSource } from '../../../cartography/datasources/drawings-datasource';
@ -27,8 +27,8 @@ describe('DrawingAddedComponent', () => {
new LineElementFactory()
);
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: DrawingService, useValue: mockedDrawingService },
{ provide: DrawingsDataSource, useValue: mockedDrawingsDataSource },
@ -38,7 +38,7 @@ describe('DrawingAddedComponent', () => {
],
declarations: [DrawingAddedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DrawingAddedComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { DrawingsDataSource } from '../../../cartography/datasources/drawings-datasource';
import { DrawingsEventSource } from '../../../cartography/events/drawings-event-source';
@ -16,8 +16,8 @@ describe('DrawingDraggedComponent', () => {
let mockedDrawingsDataSource = new MockedDrawingsDataSource();
let mockedDrawingsEventSource = new DrawingsEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: DrawingService, useValue: mockedDrawingService },
{ provide: DrawingsDataSource, useValue: mockedDrawingsDataSource },
@ -25,7 +25,7 @@ describe('DrawingDraggedComponent', () => {
],
declarations: [DrawingDraggedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DrawingDraggedComponent);

View File

@ -18,8 +18,8 @@ describe('DrawingResizedComponent', () => {
let mockedDrawingsEventSource = new DrawingsEventSource();
let mockedMapDrawingToSvgConverter = new MapDrawingToSvgConverter();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: DrawingService, useValue: mockedDrawingService },
{ provide: DrawingsDataSource, useValue: mockedDrawingsDataSource },
@ -28,7 +28,7 @@ describe('DrawingResizedComponent', () => {
],
declarations: [DrawingResizedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DrawingResizedComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { LinksDataSource } from '../../../cartography/datasources/links-datasource';
import { DraggedDataEvent } from '../../../cartography/events/event-source';
@ -18,8 +18,8 @@ describe('InterfaceLabelDraggedComponent', () => {
let mockedLinksEventSource = new LinksEventSource();
let mockedLinksDataSource = new LinksDataSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: LinkService, useValue: mockedLinkService },
{ provide: LinksDataSource, useValue: mockedLinksDataSource },
@ -27,7 +27,7 @@ describe('InterfaceLabelDraggedComponent', () => {
],
declarations: [InterfaceLabelDraggedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(InterfaceLabelDraggedComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { MapLabelToLabelConverter } from '../../../cartography/converters/map/map-label-to-label-converter';
import { MapNodeToNodeConverter } from '../../../cartography/converters/map/map-node-to-node-converter';
@ -30,8 +30,8 @@ describe('LinkCreatedComponent', () => {
let mockedLinksEventSource = new LinksEventSource();
let project = new Project();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: ProjectService, useClass: MockedProjectService },
{ provide: LinkService, useValue: mockedLinkService },
@ -42,7 +42,7 @@ describe('LinkCreatedComponent', () => {
],
declarations: [LinkCreatedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(LinkCreatedComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { NodesDataSource } from '../../../cartography/datasources/nodes-datasource';
import { DraggedDataEvent } from '../../../cartography/events/event-source';
@ -16,8 +16,8 @@ describe('NodeDraggedComponent', () => {
let mockedNodeService = new MockedNodeService();
let mockedNodesEventSource = new NodesEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: NodesDataSource, useValue: mockedNodesDataSource },
{ provide: NodeService, useValue: mockedNodeService },
@ -25,7 +25,7 @@ describe('NodeDraggedComponent', () => {
],
declarations: [NodeDraggedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(NodeDraggedComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { MapLabelToLabelConverter } from '../../../cartography/converters/map/map-label-to-label-converter';
import { NodesDataSource } from '../../../cartography/datasources/nodes-datasource';
@ -24,8 +24,8 @@ describe('NodeLabelDraggedComponent', () => {
new FontFixer()
);
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: NodesDataSource, useValue: mockedNodesDataSource },
{ provide: NodeService, useValue: mockedNodeService },
@ -34,7 +34,7 @@ describe('NodeLabelDraggedComponent', () => {
],
declarations: [NodeLabelDraggedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(NodeLabelDraggedComponent);

View File

@ -28,8 +28,8 @@ describe('TextAddedComponent', () => {
new LineElementFactory()
);
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: DrawingService, useValue: mockedDrawingService },
{ provide: DrawingsDataSource, useValue: mockedDrawingsDataSource },
@ -40,7 +40,7 @@ describe('TextAddedComponent', () => {
],
declarations: [TextAddedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(TextAddedComponent);

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs';
import { MapDrawingToSvgConverter } from '../../../cartography/converters/map/map-drawing-to-svg-converter';
import { DrawingsDataSource } from '../../../cartography/datasources/drawings-datasource';
@ -16,8 +16,8 @@ describe('TextEditedComponent', () => {
let mockedDrawingsDataSource = new MockedDrawingsDataSource();
let mockedDrawingsEventSource = new DrawingsEventSource();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
providers: [
{ provide: DrawingService, useValue: mockedDrawingService },
{ provide: DrawingsDataSource, useValue: mockedDrawingsDataSource },
@ -26,7 +26,7 @@ describe('TextEditedComponent', () => {
],
declarations: [TextEditedComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(TextEditedComponent);

View File

@ -1,15 +1,19 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ElectronService, ElectronServiceRef } from 'ngx-electron';
import { InstallSoftwareComponent } from './install-software.component';
describe('InstallSoftwareComponent', () => {
let component: InstallSoftwareComponent;
let fixture: ComponentFixture<InstallSoftwareComponent>;
beforeEach(async(() => {
beforeEach(async () => {
TestBed.configureTestingModule({
declarations: [InstallSoftwareComponent],
providers: [
{ provide: ElectronService, useValue: {} },
]
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(InstallSoftwareComponent);
@ -17,7 +21,7 @@ describe('InstallSoftwareComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -17,17 +17,21 @@ export class InstallSoftwareComponent implements OnInit, OnDestroy, OnChanges {
public readyToInstall = true;
public buttonText: string;
constructor(private electronService: ElectronService) {}
constructor(private electronService: ElectronService) { }
ngOnInit() {
this.electronService.ipcRenderer.on(this.responseChannel, (event, data) => {
this.updateButton();
this.installedChanged.emit(data);
});
if (this.electronService && this.electronService.ipcRenderer) {
this.electronService.ipcRenderer.on(this.responseChannel, (event, data) => {
this.updateButton();
this.installedChanged.emit(data);
});
}
}
ngOnDestroy() {
this.electronService.ipcRenderer.removeAllListeners(this.responseChannel);
if (this.electronService && this.electronService.ipcRenderer) {
this.electronService.ipcRenderer.removeAllListeners(this.responseChannel);
}
}
ngOnChanges() {

View File

@ -1,15 +1,26 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ExternalSoftwareDefinitionService } from 'app/services/external-software-definition.service';
import { InstalledSoftwareService } from 'app/services/installed-software.service';
import { PlatformService } from 'app/services/platform.service';
import { ElectronService } from 'ngx-electron';
import { InstalledSoftwareComponent } from './installed-software.component';
describe('InstalledSoftwareComponent', () => {
let component: InstalledSoftwareComponent;
let fixture: ComponentFixture<InstalledSoftwareComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [InstalledSoftwareComponent],
providers: [
InstalledSoftwareService,
ElectronService,
ExternalSoftwareDefinitionService,
PlatformService
],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(InstalledSoftwareComponent);
@ -17,7 +28,7 @@ describe('InstalledSoftwareComponent', () => {
fixture.detectChanges();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -16,8 +16,8 @@ describe('BuiltInPreferencesComponent', () => {
let fixture: ComponentFixture<BuiltInPreferencesComponent>;
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -36,7 +36,7 @@ describe('BuiltInPreferencesComponent', () => {
declarations: [BuiltInPreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(BuiltInPreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -39,8 +39,8 @@ describe('CloudNodesAddTemplateComponent', () => {
let mockedComputeService = new MockedComputeService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -65,7 +65,7 @@ describe('CloudNodesAddTemplateComponent', () => {
declarations: [CloudNodesAddTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(CloudNodesAddTemplateComponent);

View File

@ -41,8 +41,8 @@ describe('CloudNodesTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -68,7 +68,7 @@ describe('CloudNodesTemplateDetailsComponent', () => {
declarations: [CloudNodesTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(CloudNodesTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('CloudNodesTemplatesComponent', () => {
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,7 +53,7 @@ describe('CloudNodesTemplatesComponent', () => {
declarations: [CloudNodesTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(CloudNodesTemplatesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -39,8 +39,8 @@ describe('EthernetHubsAddTemplateComponent', () => {
let mockedComputeService = new MockedComputeService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -68,7 +68,7 @@ describe('EthernetHubsAddTemplateComponent', () => {
declarations: [EthernetHubsAddTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(EthernetHubsAddTemplateComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -41,8 +41,8 @@ describe('EthernetHubsTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -68,7 +68,7 @@ describe('EthernetHubsTemplateDetailsComponent', () => {
declarations: [EthernetHubsTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(EthernetHubsTemplateDetailsComponent);

View File

@ -31,8 +31,8 @@ describe('EthernetHubsTemplatesComponent', () => {
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,15 +53,15 @@ describe('EthernetHubsTemplatesComponent', () => {
declarations: [EthernetHubsTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EthernetHubsTemplatesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
beforeEach(() => {
fixture = TestBed.createComponent(EthernetHubsTemplatesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -39,8 +39,8 @@ describe('EthernetSwitchesAddTemplateComponent', () => {
let mockedComputeService = new MockedComputeService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -68,7 +68,7 @@ describe('EthernetSwitchesAddTemplateComponent', () => {
declarations: [EthernetSwitchesAddTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(EthernetSwitchesAddTemplateComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -42,8 +42,8 @@ describe('EthernetSwitchesTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -69,7 +69,7 @@ describe('EthernetSwitchesTemplateDetailsComponent', () => {
declarations: [EthernetSwitchesTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(EthernetSwitchesTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('EthernetSwitchesTemplatesComponent', () => {
let mockedBuiltInTemplatesService = new MockedBuiltInTemplatesService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,15 +53,15 @@ describe('EthernetSwitchesTemplatesComponent', () => {
declarations: [EthernetSwitchesTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EthernetSwitchesTemplatesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
beforeEach(() => {
fixture = TestBed.createComponent(EthernetSwitchesTemplatesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -14,8 +14,8 @@ describe('Custom adapters component', () => {
let component: CustomAdaptersComponent;
let fixture: ComponentFixture<CustomAdaptersComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatTableModule,
MatIconModule,
@ -28,7 +28,7 @@ describe('Custom adapters component', () => {
declarations: [CustomAdaptersComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(CustomAdaptersComponent);

View File

@ -1,7 +1,7 @@
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -28,7 +28,7 @@ describe('Symbols component', () => {
let fixture: ComponentFixture<SymbolsComponent>;
let mockedSymbolsService = new MockedSymbolService();
beforeEach(async(() => {
beforeEach(async() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
@ -49,7 +49,7 @@ describe('Symbols component', () => {
declarations: [SymbolsComponent, SearchFilter],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(SymbolsComponent);

View File

@ -46,8 +46,8 @@ xdescribe('AddDockerTemplateComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatStepperModule,
MatAutocompleteModule,
@ -81,7 +81,7 @@ xdescribe('AddDockerTemplateComponent', () => {
],
declarations: [AddDockerTemplateComponent],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AddDockerTemplateComponent);
@ -92,27 +92,27 @@ xdescribe('AddDockerTemplateComponent', () => {
fixture.destroy();
});
it('should open first step at start', async(() => {
it('should open first step at start', async () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
await fixture.whenStable().then(() => {
let stepperComponent = fixture.debugElement.query(By.css('mat-vertical-stepper')).componentInstance;
expect(stepperComponent.selectedIndex).toBe(0);
});
}));
});
it('should display correct label at start', async(() => {
it('should display correct label at start', async() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
await fixture.whenStable().then(() => {
let selectedLabel = fixture.nativeElement.querySelector('[aria-selected="true"]');
expect(selectedLabel.textContent).toMatch('Server type');
});
}));
});
it('should not call add template when required fields are empty', async(() => {
it('should not call add template when required fields are empty', async() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
await fixture.whenStable().then(() => {
let addButton = fixture.debugElement.nativeElement.querySelector('.add-button');
spyOn(mockedDockerService, 'addTemplate').and.returnValue(of({} as DockerTemplate));
@ -124,11 +124,11 @@ xdescribe('AddDockerTemplateComponent', () => {
expect(mockedDockerService.addTemplate).not.toHaveBeenCalled();
});
}));
});
it('should call add template when required fields are filled', async(() => {
it('should call add template when required fields are filled', async () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
await fixture.whenStable().then(() => {
let stepperComponent = fixture.debugElement.query(By.css('mat-vertical-stepper')).componentInstance;
stepperComponent.selectedIndex = 1;
component.newImageSelected = true;
@ -197,5 +197,5 @@ xdescribe('AddDockerTemplateComponent', () => {
});
});
});
}));
});
});

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -40,8 +40,8 @@ describe('DockerTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -66,7 +66,7 @@ describe('DockerTemplateDetailsComponent', () => {
declarations: [DockerTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DockerTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('DockerTemplatesComponent', () => {
let mockedDockerService = new MockedDockerService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -50,7 +50,7 @@ describe('DockerTemplatesComponent', () => {
declarations: [DockerTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DockerTemplatesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatCheckboxModule } from '@angular/material/checkbox';
@ -44,8 +44,8 @@ xdescribe('AddIosTemplateComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatStepperModule,
FormsModule,
@ -76,7 +76,7 @@ xdescribe('AddIosTemplateComponent', () => {
declarations: [AddIosTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AddIosTemplateComponent);

View File

@ -1,7 +1,7 @@
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -27,8 +27,8 @@ describe('DynamipsPreferencesComponent', () => {
let mockedServerSettingsService = new MockedServerSettingsService();
let mockedToasterService = new MockedToasterService();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
HttpClientModule,
MatIconModule,
@ -49,9 +49,9 @@ describe('DynamipsPreferencesComponent', () => {
{ provide: ToasterService, useValue: mockedToasterService },
],
declarations: [DynamipsPreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
schemas: [NO_ERRORS_SCHEMA,CUSTOM_ELEMENTS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(DynamipsPreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -40,8 +40,8 @@ describe('IosTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -66,7 +66,7 @@ describe('IosTemplateDetailsComponent', () => {
declarations: [IosTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(IosTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('IosTemplatesComponent', () => {
let mockedIosService = new MockedIosService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,7 +53,7 @@ describe('IosTemplatesComponent', () => {
declarations: [IosTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(IosTemplatesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -16,8 +16,8 @@ describe('GeneralPreferencesComponent', () => {
let fixture: ComponentFixture<GeneralPreferencesComponent>;
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -36,7 +36,7 @@ describe('GeneralPreferencesComponent', () => {
declarations: [GeneralPreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(GeneralPreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatCheckboxModule } from '@angular/material/checkbox';
@ -44,8 +44,8 @@ xdescribe('AddIouTemplateComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatStepperModule,
FormsModule,
@ -76,7 +76,7 @@ xdescribe('AddIouTemplateComponent', () => {
declarations: [AddIouTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AddIouTemplateComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -40,8 +40,8 @@ describe('IouTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -63,7 +63,7 @@ describe('IouTemplateDetailsComponent', () => {
declarations: [IouTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(IouTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('IouTemplatesComponent', () => {
let mockedIouService = new MockedIouService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -50,7 +50,7 @@ describe('IouTemplatesComponent', () => {
declarations: [IouTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(IouTemplatesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -36,8 +36,8 @@ describe('PreferencesComponent', () => {
let fixture: ComponentFixture<PreferencesComponent>;
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -56,7 +56,7 @@ describe('PreferencesComponent', () => {
declarations: [PreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(PreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatCheckboxModule } from '@angular/material/checkbox';
@ -54,8 +54,8 @@ xdescribe('AddQemuVmTemplateComponent', () => {
navigate: jasmine.createSpy('navigate'),
};
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatStepperModule,
FormsModule,
@ -86,7 +86,7 @@ xdescribe('AddQemuVmTemplateComponent', () => {
declarations: [AddQemuVmTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AddQemuVmTemplateComponent);

View File

@ -1,7 +1,7 @@
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -28,7 +28,7 @@ describe('QemuPreferencesComponent', () => {
let mockedServerSettingsService = new MockedServerSettingsService();
let mockedToasterService = new MockedToasterService();
beforeEach(async(() => {
beforeEach(async() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
@ -52,7 +52,7 @@ describe('QemuPreferencesComponent', () => {
declarations: [QemuPreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(QemuPreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AbstractControlDirective, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -49,8 +49,8 @@ describe('QemuVmTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -74,7 +74,7 @@ describe('QemuVmTemplateDetailsComponent', () => {
declarations: [QemuVmTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(QemuVmTemplateDetailsComponent);

View File

@ -31,8 +31,8 @@ describe('QemuTemplatesComponent', () => {
let mockedQemuService = new MockedQemuService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,7 +53,7 @@ describe('QemuTemplatesComponent', () => {
declarations: [QemuVmTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(QemuVmTemplatesComponent);

View File

@ -40,8 +40,8 @@ describe('AddVirtualBoxTemplateComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -65,7 +65,7 @@ describe('AddVirtualBoxTemplateComponent', () => {
declarations: [AddVirtualBoxTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AddVirtualBoxTemplateComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -20,8 +20,8 @@ describe('VirtualBoxPreferencesComponent', () => {
let mockedServerService = new MockedServerService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -41,7 +41,7 @@ describe('VirtualBoxPreferencesComponent', () => {
declarations: [VirtualBoxPreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(VirtualBoxPreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -41,8 +41,8 @@ describe('VirtualBoxTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -68,7 +68,7 @@ describe('VirtualBoxTemplateDetailsComponent', () => {
declarations: [VirtualBoxTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(VirtualBoxTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('VirtualBoxTemplatesComponent', () => {
let mockedVirtualBoxService = new MockedVirtualBoxService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,7 +53,7 @@ describe('VirtualBoxTemplatesComponent', () => {
declarations: [VirtualBoxTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(VirtualBoxTemplatesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -41,8 +41,8 @@ describe('AddVmwareTemplateComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -66,7 +66,7 @@ describe('AddVmwareTemplateComponent', () => {
declarations: [AddVmwareTemplateComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(AddVmwareTemplateComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -20,8 +20,8 @@ describe('VmwarePreferencesComponent', () => {
let mockedServerService = new MockedServerService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -41,7 +41,7 @@ describe('VmwarePreferencesComponent', () => {
declarations: [VmwarePreferencesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(VmwarePreferencesComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
@ -41,8 +41,8 @@ describe('VmwareTemplateDetailsComponent', () => {
let mockedToasterService = new MockedToasterService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async() => {
await TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
@ -68,7 +68,7 @@ describe('VmwareTemplateDetailsComponent', () => {
declarations: [VmwareTemplateDetailsComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
beforeEach(() => {
fixture = TestBed.createComponent(VmwareTemplateDetailsComponent);

View File

@ -1,6 +1,6 @@
import { CommonModule } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@ -31,8 +31,8 @@ describe('VmwareTemplatesComponent', () => {
let mockedVmwareService = new MockedVmwareService();
let activatedRoute = new MockedActivatedRoute().get();
beforeEach(async(() => {
TestBed.configureTestingModule({
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
MatIconModule,
MatToolbarModule,
@ -53,15 +53,15 @@ describe('VmwareTemplatesComponent', () => {
declarations: [VmwareTemplatesComponent],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(VmwareTemplatesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
beforeEach(() => {
fixture = TestBed.createComponent(VmwareTemplatesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

Some files were not shown because too many files have changed in this diff Show More