From 4c2ede5fde803f2f9f0fb2a7a14b0333cce486d5 Mon Sep 17 00:00:00 2001
From: paf <paf@titelfrei.de>
Date: Thu, 8 Apr 2021 08:54:53 +0200
Subject: [PATCH] gets rid of all the warnings in unit tests

most of them occured because of missing dependencies in the testingModule, some where console-outputs from backends.services (which are mocked now)
---
 src/app/app-root/app-root.component.spec.ts   |  8 +++-
 .../group-monitor.component.spec.ts           |  8 +++-
 .../superadmin/users/users.component.spec.ts  | 28 +++++++++++++-
 .../workspaces/workspaces.component.spec.ts   | 22 ++++++++++-
 .../network-check.component.spec.ts           | 10 ++++-
 .../questionnaire/questionnaire.component.ts  |  1 -
 .../sys-check/report/report.component.spec.ts | 10 ++++-
 src/app/sys-check/sys-check.module.ts         |  4 +-
 .../files/files.component.spec.ts             | 27 +++++++++++--
 .../workspace-admin/files/files.component.ts  | 26 ++++++-------
 .../results/results.component.spec.ts         | 21 +++++++++-
 .../results/results.component.ts              | 38 ++++++++++---------
 .../syscheck/syscheck.component.spec.ts       | 19 +++++++++-
 .../syscheck/syscheck.component.ts            | 11 +++---
 .../workspace-admin/workspace.module.spec.ts  | 13 -------
 15 files changed, 180 insertions(+), 66 deletions(-)
 delete mode 100644 src/app/workspace-admin/workspace.module.spec.ts

diff --git a/src/app/app-root/app-root.component.spec.ts b/src/app/app-root/app-root.component.spec.ts
index f6bc82c8..5b324c69 100644
--- a/src/app/app-root/app-root.component.spec.ts
+++ b/src/app/app-root/app-root.component.spec.ts
@@ -1,4 +1,5 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
 import { AppRootComponent } from './app-root.component';
 
 describe('AppRootComponent', () => {
@@ -7,7 +8,12 @@ describe('AppRootComponent', () => {
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [AppRootComponent]
+      declarations: [
+        AppRootComponent
+      ],
+      imports: [
+        RouterTestingModule
+      ]
     })
       .compileComponents();
   }));
diff --git a/src/app/group-monitor/group-monitor.component.spec.ts b/src/app/group-monitor/group-monitor.component.spec.ts
index 8066ea77..d336edf2 100644
--- a/src/app/group-monitor/group-monitor.component.spec.ts
+++ b/src/app/group-monitor/group-monitor.component.spec.ts
@@ -7,12 +7,14 @@ import { MatRadioModule } from '@angular/material/radio';
 import { MatCheckboxModule } from '@angular/material/checkbox';
 import { MatMenuModule } from '@angular/material/menu';
 import { MatTooltipModule } from '@angular/material/tooltip';
+import { MatTableModule } from '@angular/material/table';
 import { BehaviorSubject, Observable, of } from 'rxjs';
 import { MatDialog, MatDialogModule } from '@angular/material/dialog';
 import { RouterTestingModule } from '@angular/router/testing';
 import { NoopAnimationsModule } from '@angular/platform-browser/animations';
 import { CustomtextPipe } from 'iqb-components';
 import { Pipe } from '@angular/core';
+import { MatSlideToggleModule } from '@angular/material/slide-toggle';
 import { GroupMonitorComponent } from './group-monitor.component';
 import {
   CheckingOptions, CommandResponse,
@@ -28,6 +30,7 @@ import {
   unitTestExampleSessions,
   unitTestCommandResponse
 } from './test-data.spec';
+import { AlertModule } from '../shared/alert/alert.module';
 
 class MockMatDialog {
   open(): { afterClosed: () => Observable<{ action: boolean }> } {
@@ -98,7 +101,10 @@ describe('GroupMonitorComponent', () => {
         MatSidenavModule,
         NoopAnimationsModule,
         MatRadioModule,
-        MatCheckboxModule
+        MatCheckboxModule,
+        MatTableModule,
+        MatSlideToggleModule,
+        AlertModule
       ],
       providers: [
         { provide: GroupMonitorService, useValue: new MockGroupMonitorService() },
diff --git a/src/app/superadmin/users/users.component.spec.ts b/src/app/superadmin/users/users.component.spec.ts
index d3cc2381..642a851f 100644
--- a/src/app/superadmin/users/users.component.spec.ts
+++ b/src/app/superadmin/users/users.component.spec.ts
@@ -2,9 +2,27 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientModule } from '@angular/common/http';
 import { MatDialogModule } from '@angular/material/dialog';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
+import { MatTableModule } from '@angular/material/table';
+import { MatCheckboxModule } from '@angular/material/checkbox';
+import { MatIconModule } from '@angular/material/icon';
+import { Observable, of } from 'rxjs';
 import { BackendService } from '../backend.service';
 import { UsersComponent } from './users.component';
 import { MainDataService } from '../../maindata.service';
+import { UserData } from '../superadmin.interfaces';
+
+class MockBackendService {
+  // eslint-disable-next-line class-methods-use-this
+  getUsers(): Observable<UserData[]> {
+    return of([{
+      id: 0,
+      name: 'agent 00',
+      email: 'agent@doublezero.de',
+      isSuperadmin: true,
+      selected: true
+    }]);
+  }
+}
 
 describe('UsersComponent', () => {
   let component: UsersComponent;
@@ -16,10 +34,16 @@ describe('UsersComponent', () => {
       imports: [
         HttpClientModule,
         MatDialogModule,
-        MatSnackBarModule
+        MatSnackBarModule,
+        MatTableModule,
+        MatCheckboxModule,
+        MatIconModule
       ],
       providers: [
-        BackendService,
+        {
+          provide: BackendService,
+          useValue: new MockBackendService()
+        },
         MainDataService
       ]
     })
diff --git a/src/app/superadmin/workspaces/workspaces.component.spec.ts b/src/app/superadmin/workspaces/workspaces.component.spec.ts
index e6392576..0b3d9ade 100644
--- a/src/app/superadmin/workspaces/workspaces.component.spec.ts
+++ b/src/app/superadmin/workspaces/workspaces.component.spec.ts
@@ -2,9 +2,21 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientModule } from '@angular/common/http';
 import { MatDialogModule } from '@angular/material/dialog';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
+import { MatTableModule } from '@angular/material/table';
+import { MatCheckboxModule } from '@angular/material/checkbox';
+import { MatIconModule } from '@angular/material/icon';
+import { Observable, of } from 'rxjs';
 import { BackendService } from '../backend.service';
 import { WorkspacesComponent } from './workspaces.component';
 import { MainDataService } from '../../maindata.service';
+import { IdAndName } from '../superadmin.interfaces';
+
+class MockBackendService {
+  // eslint-disable-next-line class-methods-use-this
+  getWorkspaces(): Observable<IdAndName[]> {
+    return of([{ id: 1, name: 'a workspace' }]);
+  }
+}
 
 describe('WorkspacesComponent', () => {
   let component: WorkspacesComponent;
@@ -16,10 +28,16 @@ describe('WorkspacesComponent', () => {
       imports: [
         HttpClientModule,
         MatDialogModule,
-        MatSnackBarModule
+        MatSnackBarModule,
+        MatTableModule,
+        MatCheckboxModule,
+        MatIconModule
       ],
       providers: [
-        BackendService,
+        {
+          provide: BackendService,
+          useValue: new MockBackendService()
+        },
         MainDataService
       ]
     })
diff --git a/src/app/sys-check/network-check/network-check.component.spec.ts b/src/app/sys-check/network-check/network-check.component.spec.ts
index f801084e..f6c9e904 100644
--- a/src/app/sys-check/network-check/network-check.component.spec.ts
+++ b/src/app/sys-check/network-check/network-check.component.spec.ts
@@ -1,7 +1,9 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientModule } from '@angular/common/http';
+import { MatCardModule } from '@angular/material/card';
 import { NetworkCheckComponent } from './network-check.component';
 import { BackendService } from '../backend.service';
+import { TcSpeedChartComponent } from './tc-speed-chart.component';
 
 describe('NetworkCheckComponent', () => {
   let component: NetworkCheckComponent;
@@ -9,9 +11,13 @@ describe('NetworkCheckComponent', () => {
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [NetworkCheckComponent],
+      declarations: [
+        NetworkCheckComponent,
+        TcSpeedChartComponent
+      ],
       imports: [
-        HttpClientModule
+        HttpClientModule,
+        MatCardModule
       ],
       providers: [
         BackendService
diff --git a/src/app/sys-check/questionnaire/questionnaire.component.ts b/src/app/sys-check/questionnaire/questionnaire.component.ts
index 461d7d97..b326192e 100644
--- a/src/app/sys-check/questionnaire/questionnaire.component.ts
+++ b/src/app/sys-check/questionnaire/questionnaire.component.ts
@@ -1,6 +1,5 @@
 import { FormControl, FormGroup } from '@angular/forms';
 import { Component, OnInit, OnDestroy } from '@angular/core';
-import { CustomtextService } from 'iqb-components';
 import { Subscription } from 'rxjs';
 import { SysCheckDataService } from '../sys-check-data.service';
 
diff --git a/src/app/sys-check/report/report.component.spec.ts b/src/app/sys-check/report/report.component.spec.ts
index 866f05e3..32d41cd1 100644
--- a/src/app/sys-check/report/report.component.spec.ts
+++ b/src/app/sys-check/report/report.component.spec.ts
@@ -2,6 +2,8 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientModule } from '@angular/common/http';
 import { MatDialogModule } from '@angular/material/dialog';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
+import { MatCardModule } from '@angular/material/card';
+import { RouterTestingModule } from '@angular/router/testing';
 import { ReportComponent } from './report.component';
 import { BackendService } from '../backend.service';
 
@@ -11,11 +13,15 @@ describe('ReportComponent', () => {
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ReportComponent],
+      declarations: [
+        ReportComponent
+      ],
       imports: [
         HttpClientModule,
         MatDialogModule,
-        MatSnackBarModule
+        MatSnackBarModule,
+        MatCardModule,
+        RouterTestingModule
       ],
       providers: [
         BackendService
diff --git a/src/app/sys-check/sys-check.module.ts b/src/app/sys-check/sys-check.module.ts
index 7949572f..66e54432 100644
--- a/src/app/sys-check/sys-check.module.ts
+++ b/src/app/sys-check/sys-check.module.ts
@@ -18,6 +18,7 @@ import { MatRadioModule } from '@angular/material/radio';
 import { MatSelectModule } from '@angular/material/select';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { MatStepperModule } from '@angular/material/stepper';
+import { RouterModule } from '@angular/router';
 import { TcSpeedChartComponent } from './network-check/tc-speed-chart.component';
 import { SaveReportComponent } from './report/save-report/save-report.component';
 import { ReportComponent } from './report/report.component';
@@ -51,7 +52,8 @@ import { SysCheckDataService } from './sys-check-data.service';
     MatTooltipModule,
     ReactiveFormsModule,
     SysCheckRoutingModule,
-    IqbComponentsModule.forChild()
+    IqbComponentsModule.forChild(),
+    RouterModule
   ],
   declarations: [
     SysCheckComponent,
diff --git a/src/app/workspace-admin/files/files.component.spec.ts b/src/app/workspace-admin/files/files.component.spec.ts
index 8cae0d74..dd70a8cd 100644
--- a/src/app/workspace-admin/files/files.component.spec.ts
+++ b/src/app/workspace-admin/files/files.component.spec.ts
@@ -1,15 +1,31 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientModule } from '@angular/common/http';
+import { MatExpansionModule } from '@angular/material/expansion';
 import { MatDialogModule } from '@angular/material/dialog';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { MatTableModule } from '@angular/material/table';
 import { MatCheckboxModule } from '@angular/material/checkbox';
 import { MatIconModule } from '@angular/material/icon';
+import { Observable, of } from 'rxjs';
 import { FilesComponent } from './files.component';
 import { BackendService } from '../backend.service';
 import { WorkspaceDataService } from '../workspacedata.service';
 import { MainDataService } from '../../maindata.service';
-import { IqbFilesUploadQueueComponent } from './iqb-files';
+import { IqbFilesUploadQueueComponent, IqbFilesUploadInputForDirective } from './iqb-files';
+import { GetFileResponseData } from '../workspace.interfaces';
+
+class MockBackendService {
+  // eslint-disable-next-line class-methods-use-this
+  getFiles(): Observable<GetFileResponseData> {
+    return of({
+      Unit: [],
+      Testtakers: [],
+      SysCheck: [],
+      Booklet: [],
+      Resource: []
+    });
+  }
+}
 
 describe('FilesComponent', () => {
   let component: FilesComponent;
@@ -19,10 +35,12 @@ describe('FilesComponent', () => {
     TestBed.configureTestingModule({
       declarations: [
         FilesComponent,
-        IqbFilesUploadQueueComponent
+        IqbFilesUploadQueueComponent,
+        IqbFilesUploadInputForDirective
       ],
       imports: [
         HttpClientModule,
+        MatExpansionModule,
         MatDialogModule,
         MatSnackBarModule,
         MatTableModule,
@@ -30,7 +48,10 @@ describe('FilesComponent', () => {
         MatCheckboxModule
       ],
       providers: [
-        BackendService,
+        {
+          provide: BackendService,
+          useValue: new MockBackendService()
+        },
         WorkspaceDataService,
         MainDataService
       ]
diff --git a/src/app/workspace-admin/files/files.component.ts b/src/app/workspace-admin/files/files.component.ts
index 1e78ae9a..6a9713df 100644
--- a/src/app/workspace-admin/files/files.component.ts
+++ b/src/app/workspace-admin/files/files.component.ts
@@ -36,19 +36,19 @@ interface FileStats {
   styleUrls: ['./files.component.css']
 })
 export class FilesComponent implements OnInit {
-  public files: {[type in IQBFileType]?: MatTableDataSource<IQBFile>} = {};
-  public fileTypes = IQBFileTypes;
-  public displayedColumns = ['checked', 'name', 'size', 'modificationTime'];
+  files: { [type in IQBFileType]?: MatTableDataSource<IQBFile> } = {};
+  fileTypes = IQBFileTypes;
+  displayedColumns = ['checked', 'name', 'size', 'modificationTime'];
 
-  public uploadUrl = '';
-  public fileNameAlias = 'fileforvo';
+  uploadUrl = '';
+  fileNameAlias = 'fileforvo';
 
-  public lastSort:Sort = {
+  lastSort:Sort = {
     active: 'name',
     direction: 'asc'
   };
 
-  public typeLabels = {
+  typeLabels = {
     Testtakers: 'Teilnehmerlisten',
     Booklet: 'Testhefte',
     SysCheck: 'System-Check-Definitionen',
@@ -56,7 +56,7 @@ export class FilesComponent implements OnInit {
     Unit: 'Units'
   };
 
-  public fileStats: FileStats = {
+  fileStats: FileStats = {
     total: {
       count: 0,
       invalid: 0
@@ -65,7 +65,7 @@ export class FilesComponent implements OnInit {
     testtakers: 0
   };
 
-  @ViewChild('fileUploadQueue', { static: true }) public uploadQueue: IqbFilesUploadQueueComponent;
+  @ViewChild('fileUploadQueue', { static: true }) uploadQueue: IqbFilesUploadQueueComponent;
 
   constructor(
     @Inject('SERVER_URL') private serverUrl: string,
@@ -86,14 +86,14 @@ export class FilesComponent implements OnInit {
     });
   }
 
-  public checkAll(isChecked: boolean, type: IQBFileType): void {
+  checkAll(isChecked: boolean, type: IQBFileType): void {
     this.files[type].data = this.files[type].data.map(file => {
       file.isChecked = isChecked;
       return file;
     });
   }
 
-  public deleteFiles(): void {
+  deleteFiles(): void {
     if (this.wds.wsRole !== 'RW') {
       return;
     }
@@ -148,7 +148,7 @@ export class FilesComponent implements OnInit {
     }
   }
 
-  public updateFileList(empty = false): void {
+  updateFileList(empty = false): void {
     if (empty) {
       this.files = {};
       this.mds.setSpinnerOff();
@@ -218,7 +218,7 @@ export class FilesComponent implements OnInit {
     return file;
   }
 
-  public download(file: IQBFile): void {
+  download(file: IQBFile): void {
     this.mds.setSpinnerOn();
     this.bs.downloadFile(file.type, file.name)
       .subscribe(
diff --git a/src/app/workspace-admin/results/results.component.spec.ts b/src/app/workspace-admin/results/results.component.spec.ts
index 2c9b47b6..ca89455a 100644
--- a/src/app/workspace-admin/results/results.component.spec.ts
+++ b/src/app/workspace-admin/results/results.component.spec.ts
@@ -5,9 +5,25 @@ import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { MatIconModule } from '@angular/material/icon';
 import { MatTableModule } from '@angular/material/table';
 import { MatCheckboxModule } from '@angular/material/checkbox';
+import { Observable, of } from 'rxjs';
 import { ResultsComponent } from './results.component';
 import { BackendService } from '../backend.service';
 import { WorkspaceDataService } from '../workspacedata.service';
+import { ResultData } from '../workspace.interfaces';
+
+class MockBackendService {
+  // eslint-disable-next-line class-methods-use-this
+  getResultData(): Observable<ResultData[]> {
+    return of([{
+      groupname: 'a_group',
+      bookletsStarted: 5,
+      num_units_min: 5,
+      num_units_max: 10,
+      num_units_mean: 7.5,
+      lastchange: 100080050
+    }]);
+  }
+}
 
 describe('ResultsComponent', () => {
   let component: ResultsComponent;
@@ -25,7 +41,10 @@ describe('ResultsComponent', () => {
         MatCheckboxModule
       ],
       providers: [
-        BackendService,
+        {
+          provide: BackendService,
+          useValue: new MockBackendService()
+        },
         WorkspaceDataService
       ]
     })
diff --git a/src/app/workspace-admin/results/results.component.ts b/src/app/workspace-admin/results/results.component.ts
index 6c71d07c..15d2f17d 100644
--- a/src/app/workspace-admin/results/results.component.ts
+++ b/src/app/workspace-admin/results/results.component.ts
@@ -1,15 +1,16 @@
-import { LogData } from '../workspace.interfaces';
-import { WorkspaceDataService } from '../workspacedata.service';
 import { ConfirmDialogComponent, ConfirmDialogData } from 'iqb-components';
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { BackendService } from '../backend.service';
 import { MatDialog } from '@angular/material/dialog';
 import { MatSnackBar } from '@angular/material/snack-bar';
 import { MatSort } from '@angular/material/sort';
 import { MatTableDataSource } from '@angular/material/table';
 import { SelectionModel } from '@angular/cdk/collections';
 import { saveAs } from 'file-saver';
-import { ResultData, UnitResponse, ReviewData } from '../workspace.interfaces';
+import { BackendService } from '../backend.service';
+import { WorkspaceDataService } from '../workspacedata.service';
+import {
+  LogData, ResultData, UnitResponse, ReviewData
+} from '../workspace.interfaces';
 import { MainDataService } from '../../maindata.service';
 
 @Component({
@@ -17,10 +18,13 @@ import { MainDataService } from '../../maindata.service';
   styleUrls: ['./results.component.css']
 })
 export class ResultsComponent implements OnInit {
-  displayedColumns: string[] = ['selectCheckbox', 'groupname', 'bookletsStarted', 'num_units_min', 'num_units_max', 'num_units_mean', 'lastchange'];
-  public resultDataSource = new MatTableDataSource<ResultData>([]);
+  displayedColumns: string[] = [
+    'selectCheckbox', 'groupname', 'bookletsStarted', 'num_units_min', 'num_units_max', 'num_units_mean', 'lastchange'
+  ];
+
+  resultDataSource = new MatTableDataSource<ResultData>([]);
   // prepared for selection if needed sometime
-  public tableselectionCheckbox = new SelectionModel<ResultData>(true, []);
+  tableselectionCheckbox = new SelectionModel<ResultData>(true, []);
 
   @ViewChild(MatSort, { static: true }) sort: MatSort;
 
@@ -32,14 +36,14 @@ export class ResultsComponent implements OnInit {
     public snackBar: MatSnackBar
   ) { }
 
-  ngOnInit() {
+  ngOnInit(): void {
     setTimeout(() => {
       this.mds.setSpinnerOn();
       this.updateTable();
     });
   }
 
-  updateTable() {
+  updateTable(): void {
     this.tableselectionCheckbox.clear();
     if (this.wds.wsRole === 'MO') {
       this.resultDataSource = new MatTableDataSource<ResultData>([]);
@@ -55,19 +59,19 @@ export class ResultsComponent implements OnInit {
     }
   }
 
-  isAllSelected() {
+  isAllSelected(): boolean {
     const numSelected = this.tableselectionCheckbox.selected.length;
     const numRows = this.resultDataSource.data.length;
     return numSelected === numRows;
   }
 
-  masterToggle() {
+  masterToggle(): void {
     this.isAllSelected() ?
-        this.tableselectionCheckbox.clear() :
-        this.resultDataSource.data.forEach(row => this.tableselectionCheckbox.select(row));
+      this.tableselectionCheckbox.clear() :
+      this.resultDataSource.data.forEach(row => this.tableselectionCheckbox.select(row));
   }
 
-  downloadResponsesCSV() {
+  downloadResponsesCSV(): void {
     if (this.tableselectionCheckbox.selected.length > 0) {
       const selectedGroups: string[] = [];
       this.tableselectionCheckbox.selected.forEach(element => {
@@ -129,7 +133,7 @@ export class ResultsComponent implements OnInit {
     }
   }
 
-  downloadReviewsCSV() {
+  downloadReviewsCSV(): void {
     if (this.tableselectionCheckbox.selected.length > 0) {
       const selectedGroups: string[] = [];
       this.tableselectionCheckbox.selected.forEach(element => {
@@ -190,7 +194,7 @@ export class ResultsComponent implements OnInit {
     }
   }
 
-  downloadLogsCSV() {
+  downloadLogsCSV(): void {
     if (this.tableselectionCheckbox.selected.length > 0) {
       const selectedGroups: string[] = [];
       this.tableselectionCheckbox.selected.forEach(element => {
@@ -223,7 +227,7 @@ export class ResultsComponent implements OnInit {
     }
   }
 
-  deleteData() {
+  deleteData(): void {
     if (this.tableselectionCheckbox.selected.length > 0) {
       const selectedGroups: string[] = [];
       this.tableselectionCheckbox.selected.forEach(element => {
diff --git a/src/app/workspace-admin/syscheck/syscheck.component.spec.ts b/src/app/workspace-admin/syscheck/syscheck.component.spec.ts
index 9b4c9eee..66f9a1ee 100644
--- a/src/app/workspace-admin/syscheck/syscheck.component.spec.ts
+++ b/src/app/workspace-admin/syscheck/syscheck.component.spec.ts
@@ -5,9 +5,23 @@ import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { MatIconModule } from '@angular/material/icon';
 import { MatTableModule } from '@angular/material/table';
 import { MatCheckboxModule } from '@angular/material/checkbox';
+import { Observable, of } from 'rxjs';
 import { SyscheckComponent } from './syscheck.component';
 import { BackendService } from '../backend.service';
 import { WorkspaceDataService } from '../workspacedata.service';
+import { SysCheckStatistics } from '../workspace.interfaces';
+
+class MockBackendService {
+  // eslint-disable-next-line class-methods-use-this
+  getSysCheckReportList(): Observable<SysCheckStatistics[]> {
+    return of([{
+      id: 'sys-check-id',
+      label: 'a sys check',
+      count: 123,
+      details: []
+    }]);
+  }
+}
 
 describe('Workspace-Admin: SyscheckComponent', () => {
   let component: SyscheckComponent;
@@ -25,7 +39,10 @@ describe('Workspace-Admin: SyscheckComponent', () => {
         MatCheckboxModule
       ],
       providers: [
-        BackendService,
+        {
+          provide: BackendService,
+          useValue: new MockBackendService()
+        },
         WorkspaceDataService
       ]
     })
diff --git a/src/app/workspace-admin/syscheck/syscheck.component.ts b/src/app/workspace-admin/syscheck/syscheck.component.ts
index e08f22be..94c51338 100644
--- a/src/app/workspace-admin/syscheck/syscheck.component.ts
+++ b/src/app/workspace-admin/syscheck/syscheck.component.ts
@@ -31,14 +31,14 @@ export class SyscheckComponent implements OnInit {
   ) {
   }
 
-  ngOnInit() {
+  ngOnInit(): void {
     setTimeout(() => {
       this.mds.setSpinnerOn();
       this.updateTable();
     });
   }
 
-  updateTable() {
+  updateTable(): void {
     this.tableselectionCheckbox.clear();
     this.bs.getSysCheckReportList().subscribe(
       (resultData: SysCheckStatistics[]) => {
@@ -57,12 +57,11 @@ export class SyscheckComponent implements OnInit {
 
   masterToggle(): void {
     this.isAllSelected() ?
-        this.tableselectionCheckbox.clear() :
-        this.resultDataSource.data.forEach(row => this.tableselectionCheckbox.select(row));
+      this.tableselectionCheckbox.clear() :
+      this.resultDataSource.data.forEach(row => this.tableselectionCheckbox.select(row));
   }
 
-
-  downloadReportsCSV() {
+  downloadReportsCSV(): void {
     if (this.tableselectionCheckbox.selected.length > 0) {
       const selectedReports: string[] = [];
       this.tableselectionCheckbox.selected.forEach(element => {
diff --git a/src/app/workspace-admin/workspace.module.spec.ts b/src/app/workspace-admin/workspace.module.spec.ts
deleted file mode 100644
index b88c8018..00000000
--- a/src/app/workspace-admin/workspace.module.spec.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { WorkspaceModule } from './workspace.module';
-
-describe('WorkspaceModule', () => {
-  let workspaceModule: WorkspaceModule;
-
-  beforeEach(() => {
-    workspaceModule = new WorkspaceModule();
-  });
-
-  it('should create an instance', () => {
-    expect(workspaceModule).toBeTruthy();
-  });
-});
-- 
GitLab