]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Adapt unit tests to Jest
authorTiago Melo <tmelo@suse.com>
Wed, 16 May 2018 10:38:02 +0000 (11:38 +0100)
committerTiago Melo <tmelo@suse.com>
Thu, 17 May 2018 16:53:38 +0000 (17:53 +0100)
Signed-off-by: Tiago Melo <tmelo@suse.com>
17 files changed:
src/pybind/mgr/dashboard/frontend/src/app/app.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi/iscsi.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs/cephfs.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/monitor/monitor.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/dashboard/dashboard.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health-pie/health-pie.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-list/rgw-user-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/core/auth/logout/logout.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/sparkline/sparkline.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/module-status-guard.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/summary.service.spec.ts

index 3cca10d09170b806e647e6f0b626b1063f4588e8..e00243e4adb917725590faac978ae199b53422bc 100644 (file)
@@ -1,28 +1,38 @@
-import { async, TestBed } from '@angular/core/testing';
+import { NO_ERRORS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ToastModule } from 'ng2-toastr';
 
 import { AppComponent } from './app.component';
-import { BlockModule } from './ceph/block/block.module';
-import { ClusterModule } from './ceph/cluster/cluster.module';
-import { CoreModule } from './core/core.module';
-import { SharedModule } from './shared/shared.module';
+import { AuthStorageService } from './shared/services/auth-storage.service';
 
 describe('AppComponent', () => {
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [
-          RouterTestingModule,
-          CoreModule,
-          SharedModule,
-          ToastModule.forRoot(),
-          ClusterModule,
-          BlockModule
-        ],
-        declarations: [AppComponent]
-      }).compileComponents();
-    })
-  );
+  let component: AppComponent;
+  let fixture: ComponentFixture<AppComponent>;
+
+  const fakeService = {
+    isLoggedIn: () => {
+      return true;
+    }
+  };
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      imports: [RouterTestingModule, ToastModule.forRoot()],
+      declarations: [AppComponent],
+      schemas: [NO_ERRORS_SCHEMA],
+      providers: [{ provide: AuthStorageService, useValue: fakeService }]
+    }).compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(AppComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
 });
index 526c951b511ae8e6d9963482d6cf3515bc3a5823..78de242809a471cad7f889ea733cf1b83bf84b12 100644 (file)
@@ -1,7 +1,12 @@
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
-import { AppModule } from '../../../app.module';
 import { TcmuIscsiService } from '../../../shared/api/tcmu-iscsi.service';
+import { CephShortVersionPipe } from '../../../shared/pipes/ceph-short-version.pipe';
+import { DimlessPipe } from '../../../shared/pipes/dimless.pipe';
+import { ListPipe } from '../../../shared/pipes/list.pipe';
+import { RelativeDatePipe } from '../../../shared/pipes/relative-date.pipe';
+import { FormatterService } from '../../../shared/services/formatter.service';
 import { IscsiComponent } from './iscsi.component';
 
 describe('IscsiComponent', () => {
@@ -13,17 +18,24 @@ describe('IscsiComponent', () => {
       return new Promise(function(resolve, reject) {
         return;
       });
-    },
+    }
   };
 
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [AppModule],
-        providers: [{ provide: TcmuIscsiService, useValue: fakeService }]
-      }).compileComponents();
-    })
-  );
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      imports: [],
+      declarations: [IscsiComponent],
+      schemas: [NO_ERRORS_SCHEMA],
+      providers: [
+        CephShortVersionPipe,
+        DimlessPipe,
+        FormatterService,
+        RelativeDatePipe,
+        ListPipe,
+        { provide: TcmuIscsiService, useValue: fakeService }
+      ]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(IscsiComponent);
index 8c7c3fc27afb8200ccdf6c39814f6247777f79fe..3b97e91314576422e11e9812605eaffc81e365d3 100644 (file)
@@ -1,33 +1,51 @@
-import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { ToastModule } from 'ng2-toastr';
+import 'rxjs/add/observable/of';
+import { Observable } from 'rxjs/Observable';
 
-import { ApiModule } from '../../../shared/api/api.module';
-import { ComponentsModule } from '../../../shared/components/components.module';
-import { ServicesModule } from '../../../shared/services/services.module';
+import { PoolService } from '../../../shared/api/pool.service';
+import { RbdService } from '../../../shared/api/rbd.service';
+import { DimlessBinaryPipe } from '../../../shared/pipes/dimless-binary.pipe';
+import { FormatterService } from '../../../shared/services/formatter.service';
+import { NotificationService } from '../../../shared/services/notification.service';
+import { TaskManagerMessageService } from '../../../shared/services/task-manager-message.service';
+import { TaskManagerService } from '../../../shared/services/task-manager.service';
 import { RbdFormComponent } from './rbd-form.component';
 
 describe('RbdFormComponent', () => {
   let component: RbdFormComponent;
   let fixture: ComponentFixture<RbdFormComponent>;
 
+  const fakeService = {
+    subscribe: (name, metadata, onTaskFinished: (finishedTask: any) => any) => {
+      return null;
+    },
+    defaultFeatures: () => Observable.of([]),
+    list: (attrs = []) => {
+      return new Promise(function(resolve, reject) {
+        return;
+      });
+    }
+  };
+
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      imports: [
-        ReactiveFormsModule,
-        HttpClientTestingModule,
-        RouterTestingModule,
-        ComponentsModule,
-        ServicesModule,
-        ApiModule,
-        ToastModule.forRoot()
-      ],
-      declarations: [ RbdFormComponent ]
-    })
-    .compileComponents();
+      imports: [ReactiveFormsModule, RouterTestingModule],
+      declarations: [RbdFormComponent],
+      schemas: [NO_ERRORS_SCHEMA],
+      providers: [
+        DimlessBinaryPipe,
+        FormatterService,
+        TaskManagerMessageService,
+        { provide: NotificationService, useValue: fakeService },
+        { provide: PoolService, useValue: fakeService },
+        { provide: RbdService, useValue: fakeService },
+        { provide: TaskManagerService, useValue: fakeService }
+      ]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
index 97518ebf15dbebd744e77dba476e56d33593f27b..6b535b36813125eab3c8da1a7d3f3e5be9bade56 100644 (file)
@@ -5,11 +5,13 @@ import { RouterTestingModule } from '@angular/router/testing';
 import { ToastModule } from 'ng2-toastr';
 import {
   AlertModule,
-  BsDropdownModule, BsModalRef,
+  BsDropdownModule,
+  BsModalRef,
   ModalModule,
   TabsModule,
   TooltipModule
 } from 'ngx-bootstrap';
+import 'rxjs/add/observable/throw';
 import { Observable } from 'rxjs/Observable';
 
 import { RbdService } from '../../../shared/api/rbd.service';
@@ -38,9 +40,8 @@ describe('RbdListComponent', () => {
         RouterTestingModule,
         HttpClientTestingModule
       ],
-      declarations: [ RbdListComponent, RbdDetailsComponent, RbdSnapshotListComponent ]
-    })
-    .compileComponents();
+      declarations: [RbdListComponent, RbdDetailsComponent, RbdSnapshotListComponent]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
@@ -62,22 +63,31 @@ describe('RbdListComponent', () => {
       called = false;
       rbdService = new RbdService(null);
       notificationService = new NotificationService(null, null);
-      component = new RbdListComponent(rbdService, null, null, null, null, notificationService,
-                                       null, null);
-      spyOn(rbdService, 'delete').and.returnValue(Observable.throw({status: 500}));
+      component = new RbdListComponent(
+        rbdService,
+        null,
+        null,
+        null,
+        null,
+        notificationService,
+        null,
+        null
+      );
+      spyOn(rbdService, 'delete').and.returnValue(Observable.throw({ status: 500 }));
       spyOn(notificationService, 'notifyTask').and.stub();
       component.modalRef = new BsModalRef();
       component.modalRef.content = {
-        stopLoadingSpinner: () => called = true
+        stopLoadingSpinner: () => (called = true)
       };
     });
 
-    it('should make sure that if the deletion fails stopLoadingSpinner is called',
-        <any>fakeAsync(() => {
-          expect(called).toBe(false);
-          component.deleteRbd('sth', 'test');
-          tick(500);
-          expect(called).toBe(true);
-        }));
+    it('should make sure that if the deletion fails stopLoadingSpinner is called', <any>fakeAsync(
+      () => {
+        expect(called).toBe(false);
+        component.deleteRbd('sth', 'test');
+        tick(500);
+        expect(called).toBe(true);
+      }
+    ));
   });
 });
index e85f85f52040d302eddf85884d13e878752e257c..9d6fe4122470c02ba6ba8c02caec645b3f4926f0 100644 (file)
@@ -1,13 +1,13 @@
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { ChartsModule } from 'ng2-charts/ng2-charts';
-import { BsDropdownModule, ProgressbarModule } from 'ngx-bootstrap';
 import { Observable } from 'rxjs/Observable';
 
 import { CephfsService } from '../../../shared/api/cephfs.service';
-import { SharedModule } from '../../../shared/shared.module';
-import { CephfsChartComponent } from '../cephfs-chart/cephfs-chart.component';
+import { DimlessBinaryPipe } from '../../../shared/pipes/dimless-binary.pipe';
+import { DimlessPipe } from '../../../shared/pipes/dimless.pipe';
+import { FormatterService } from '../../../shared/services/formatter.service';
 import { CephfsComponent } from './cephfs.component';
 
 describe('CephfsComponent', () => {
@@ -15,35 +15,31 @@ describe('CephfsComponent', () => {
   let fixture: ComponentFixture<CephfsComponent>;
 
   const fakeFilesystemService = {
-    getCephfs: id => {
-      return Observable.create(observer => {
+    getCephfs: (id) => {
+      return Observable.create((observer) => {
         return () => console.log('disposed');
       });
     },
-    getMdsCounters: id => {
-      return Observable.create(observer => {
+    getMdsCounters: (id) => {
+      return Observable.create((observer) => {
         return () => console.log('disposed');
       });
     }
   };
 
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [
-          SharedModule,
-          ChartsModule,
-          RouterTestingModule,
-          BsDropdownModule.forRoot(),
-          ProgressbarModule.forRoot()
-        ],
-        declarations: [CephfsComponent, CephfsChartComponent],
-        providers: [
-          { provide: CephfsService, useValue: fakeFilesystemService }
-        ]
-      }).compileComponents();
-    })
-  );
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      imports: [RouterTestingModule],
+      schemas: [NO_ERRORS_SCHEMA],
+      declarations: [CephfsComponent, DimlessPipe],
+      providers: [
+        DimlessPipe,
+        DimlessBinaryPipe,
+        FormatterService,
+        { provide: CephfsService, useValue: fakeFilesystemService }
+      ]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(CephfsComponent);
index 906581e76b982bd0909407740895b0ca318d2e41..8f59bf394afca2dec259f0dca5934ff308386bc0 100644 (file)
@@ -1,23 +1,30 @@
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
-import { AppModule } from '../../../app.module';
+import { MonitorService } from '../../../shared/api/monitor.service';
 import { MonitorComponent } from './monitor.component';
 
 describe('MonitorComponent', () => {
   let component: MonitorComponent;
   let fixture: ComponentFixture<MonitorComponent>;
 
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [AppModule]
-      }).compileComponents();
-    })
-  );
+  const fakeService = {};
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [MonitorComponent],
+      schemas: [NO_ERRORS_SCHEMA],
+      providers: [{ provide: MonitorService, useValue: fakeService }]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(MonitorComponent);
     component = fixture.componentInstance;
     fixture.detectChanges();
   });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
 });
index 80500c0b9ae3a399cf33bed0c09c21cd2d1d60d6..62bc8f672e8f0675ef8298e2d8e4fdfa2b0b8110 100644 (file)
@@ -1,3 +1,4 @@
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { DashboardComponent } from './dashboard.component';
@@ -8,9 +9,9 @@ describe('DashboardComponent', () => {
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ DashboardComponent ]
-    })
-    .compileComponents();
+      declarations: [DashboardComponent],
+      schemas: [NO_ERRORS_SCHEMA]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
@@ -19,7 +20,7 @@ describe('DashboardComponent', () => {
     fixture.detectChanges();
   });
 
-  // it('should create', () => {
-  //   expect(component).toBeTruthy();
-  // });
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
 });
index dca539f041c2fd5ecf29ce49ec6c77f33b1cbd4e..ae24ccc0859fac22bd508aae31c501e0b15cf705 100644 (file)
@@ -1,22 +1,21 @@
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
-import { ChartsModule } from 'ng2-charts/ng2-charts';
-
-import { SharedModule } from '../../../shared/shared.module';
+import { DimlessBinaryPipe } from '../../../shared/pipes/dimless-binary.pipe';
+import { FormatterService } from '../../../shared/services/formatter.service';
 import { HealthPieComponent } from './health-pie.component';
 
 describe('HealthPieComponent', () => {
   let component: HealthPieComponent;
   let fixture: ComponentFixture<HealthPieComponent>;
 
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [ChartsModule, SharedModule],
-        declarations: [HealthPieComponent]
-      }).compileComponents();
-    })
-  );
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      schemas: [NO_ERRORS_SCHEMA],
+      declarations: [HealthPieComponent],
+      providers: [DimlessBinaryPipe, FormatterService]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(HealthPieComponent);
index 847cabdfbd78a38926720ad338bd3d2a398e0229..012136cc450f97525e0c9a846041699d6ad3068b 100644 (file)
@@ -1,10 +1,17 @@
-import { HttpClientModule } from '@angular/common/http';
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
-import { TabsModule } from 'ngx-bootstrap/tabs';
+import { Observable } from 'rxjs/Observable';
 
 import { DashboardService } from '../../../shared/api/dashboard.service';
 import { SharedModule } from '../../../shared/shared.module';
+import { LogColorPipe } from '../log-color.pipe';
+import { MdsSummaryPipe } from '../mds-summary.pipe';
+import { MgrSummaryPipe } from '../mgr-summary.pipe';
+import { MonSummaryPipe } from '../mon-summary.pipe';
+import { OsdSummaryPipe } from '../osd-summary.pipe';
+import { PgStatusStylePipe } from '../pg-status-style.pipe';
+import { PgStatusPipe } from '../pg-status.pipe';
 import { HealthComponent } from './health.component';
 
 describe('HealthComponent', () => {
@@ -12,24 +19,47 @@ describe('HealthComponent', () => {
   let fixture: ComponentFixture<HealthComponent>;
 
   const fakeService = {
-    getHealth() {
-      return {};
+    getHealth: () => {
+      return Observable.of({
+        health: {},
+        df: {
+          stats: {}
+        },
+        pools: []
+      });
     }
   };
 
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        providers: [{ provide: DashboardService, useValue: fakeService }],
-        imports: [SharedModule],
-        declarations: [HealthComponent]
-      }).compileComponents();
-    })
-  );
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      providers: [{ provide: DashboardService, useValue: fakeService }],
+      imports: [SharedModule],
+      declarations: [
+        HealthComponent,
+        MonSummaryPipe,
+        OsdSummaryPipe,
+        MdsSummaryPipe,
+        MgrSummaryPipe,
+        PgStatusStylePipe,
+        LogColorPipe,
+        PgStatusPipe
+      ],
+      schemas: [NO_ERRORS_SCHEMA]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(HealthComponent);
     component = fixture.componentInstance;
+
+    component.contentData = {
+      health: {}
+    };
+
     fixture.detectChanges();
   });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
 });
index b5b32d5fa616c399964243de1113d0de32a9b504..45857a69f0b1e518865c614a001e83eefe3ca771 100644 (file)
@@ -10,16 +10,13 @@ describe('PoolListComponent', () => {
   let component: PoolListComponent;
   let fixture: ComponentFixture<PoolListComponent>;
 
+  const fakeService = {};
+
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ PoolListComponent ],
-      imports: [
-        SharedModule,
-        TabsModule.forRoot(),
-        HttpClientTestingModule
-      ],
-    })
-    .compileComponents();
+      declarations: [PoolListComponent],
+      imports: [SharedModule, TabsModule.forRoot(), HttpClientTestingModule]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
index 04cafb7ad3cd480768c1ded5d25924e2df2a232f..60732772f3718ad80f0da43bbaacf575601f5e5f 100644 (file)
@@ -1,37 +1,28 @@
-import { HttpClientModule } from '@angular/common/http';
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { BsDropdownModule } from 'ngx-bootstrap';
-import { BsModalService } from 'ngx-bootstrap/modal';
-import { TabsModule } from 'ngx-bootstrap/tabs';
+import { BsModalService } from 'ngx-bootstrap';
 
-import { SharedModule } from '../../../shared/shared.module';
-import { RgwUserDetailsComponent } from '../rgw-user-details/rgw-user-details.component';
+import { RgwUserService } from '../../../shared/api/rgw-user.service';
 import { RgwUserListComponent } from './rgw-user-list.component';
 
 describe('RgwUserListComponent', () => {
   let component: RgwUserListComponent;
   let fixture: ComponentFixture<RgwUserListComponent>;
 
+  const fakeService = {};
+
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [
-        RgwUserListComponent,
-        RgwUserDetailsComponent
-      ],
-      imports: [
-        HttpClientModule,
-        RouterTestingModule,
-        BsDropdownModule.forRoot(),
-        TabsModule.forRoot(),
-        SharedModule
-      ],
+      declarations: [RgwUserListComponent],
+      imports: [RouterTestingModule],
       providers: [
-        BsModalService
-      ]
-    })
-    .compileComponents();
+        { provide: RgwUserService, useValue: fakeService },
+        { provide: BsModalService, useValue: fakeService }
+      ],
+      schemas: [NO_ERRORS_SCHEMA]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
index 665a3db0e42910b915e620c543a91de748737573..4b557b5421a75d9c5810538e5eaf48a675db8bfd 100644 (file)
@@ -1,28 +1,23 @@
-import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { SharedModule } from '../../../shared/shared.module';
+import { AuthService } from '../../../shared/api/auth.service';
+import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 import { LoginComponent } from './login.component';
 
 describe('LoginComponent', () => {
   let component: LoginComponent;
   let fixture: ComponentFixture<LoginComponent>;
 
+  const fakeService = {};
+
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      imports: [
-        FormsModule,
-        SharedModule,
-        RouterTestingModule,
-        HttpClientTestingModule
-      ],
-      declarations: [
-        LoginComponent
-      ]
-    })
-    .compileComponents();
+      imports: [FormsModule, RouterTestingModule],
+      declarations: [LoginComponent],
+      providers: [{ provide: AuthService, useValue: fakeService }, AuthStorageService]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
index 318ca820af2d377b8427ae1b5ae7eb8ba0639afd..e66bf6aca041af438e2e75fa6ecac2bae1887abc 100644 (file)
@@ -1,26 +1,21 @@
-import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { SharedModule } from '../../../shared/shared.module';
+import { AuthService } from '../../../shared/api/auth.service';
 import { LogoutComponent } from './logout.component';
 
 describe('LogoutComponent', () => {
   let component: LogoutComponent;
   let fixture: ComponentFixture<LogoutComponent>;
 
+  const fakeService = {};
+
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      imports: [
-        SharedModule,
-        RouterTestingModule,
-        HttpClientTestingModule
-      ],
-      declarations: [
-        LogoutComponent
-      ]
-    })
-    .compileComponents();
+      imports: [RouterTestingModule],
+      declarations: [LogoutComponent],
+      providers: [{ provide: AuthService, useValue: fakeService }]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
index bce74a2be3fc5aee72cd677b0120969becea9d1c..9ac9876826a81f89fd9087c29560a600b60e4225 100644 (file)
@@ -1,4 +1,4 @@
-import { Component, NgModule, TemplateRef, ViewChild } from '@angular/core';
+import { Component, NgModule, NO_ERRORS_SCHEMA, TemplateRef, ViewChild } from '@angular/core';
 import { async, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
 
@@ -7,7 +7,6 @@ import { Observable } from 'rxjs/Observable';
 import { Subscriber } from 'rxjs/Subscriber';
 
 import { ModalComponent } from '../modal/modal.component';
-import { SubmitButtonComponent } from '../submit-button/submit-button.component';
 import { DeletionModalComponent } from './deletion-modal.component';
 
 @NgModule({
@@ -101,11 +100,10 @@ describe('DeletionModalComponent', () => {
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ MockComponent, DeletionModalComponent, ModalComponent,
-        SubmitButtonComponent],
-      imports: [ModalModule.forRoot(), ReactiveFormsModule, MockModule],
-    })
-    .compileComponents();
+      declarations: [MockComponent, DeletionModalComponent],
+      schemas: [NO_ERRORS_SCHEMA],
+      imports: [ModalModule.forRoot(), ReactiveFormsModule, MockModule]
+    }).compileComponents();
   }));
 
   beforeEach(() => {
@@ -137,8 +135,13 @@ describe('DeletionModalComponent', () => {
       component.modalRef = undefined;
     };
 
-    const expectSetup = (metaType, observer: boolean, method: boolean, pattern,
-                         template: boolean) => {
+    const expectSetup = (
+      metaType,
+      observer: boolean,
+      method: boolean,
+      pattern,
+      template: boolean
+    ) => {
       expect(component.modalRef).toBeTruthy();
       expect(component.metaType).toBe(metaType);
       expect(!!component.deletionObserver).toBe(observer);
@@ -152,70 +155,74 @@ describe('DeletionModalComponent', () => {
     });
 
     it('should throw error if no modal reference is given', () => {
-      expect(() => component.setUp({
-        metaType: undefined,
-        modalRef: undefined
-      })).toThrowError('No modal reference');
+      expect(() =>
+        component.setUp({
+          metaType: undefined,
+          modalRef: undefined
+        })
+      ).toThrowError('No modal reference');
     });
 
     it('should throw error if no meta type is given', () => {
-      expect(() => component.setUp({
-        metaType: undefined,
-        modalRef: mockComponent.ctrlRef
-      })).toThrowError('No meta type');
+      expect(() =>
+        component.setUp({
+          metaType: undefined,
+          modalRef: mockComponent.ctrlRef
+        })
+      ).toThrowError('No meta type');
     });
 
     it('should throw error if no deletion method is given', () => {
-      expect(() => component.setUp({
-        metaType: 'Sth',
-        modalRef: mockComponent.ctrlRef
-      })).toThrowError('No deletion method');
+      expect(() =>
+        component.setUp({
+          metaType: 'Sth',
+          modalRef: mockComponent.ctrlRef
+        })
+      ).toThrowError('No deletion method');
     });
 
-    it('should throw no errors if metaType, modalRef and a deletion method were given',
-        () => {
-          component.setUp({
-            metaType: 'Observer',
-            modalRef: mockComponent.ctrlRef,
-            deletionObserver: mockComponent.fakeDelete()
-          });
-          expectSetup('Observer', true, false, 'yes', false);
-          clearSetup();
-          component.setUp({
-            metaType: 'Controller',
-            modalRef: mockComponent.ctrlRef,
-            deletionMethod: mockComponent.fakeDeleteController
-          });
-          expectSetup('Controller', false, true, 'yes', false);
-        });
+    it('should throw no errors if metaType, modalRef and a deletion method were given', () => {
+      component.setUp({
+        metaType: 'Observer',
+        modalRef: mockComponent.ctrlRef,
+        deletionObserver: mockComponent.fakeDelete()
+      });
+      expectSetup('Observer', true, false, 'yes', false);
+      clearSetup();
+      component.setUp({
+        metaType: 'Controller',
+        modalRef: mockComponent.ctrlRef,
+        deletionMethod: mockComponent.fakeDeleteController
+      });
+      expectSetup('Controller', false, true, 'yes', false);
+    });
 
-    it('should test optional parameters - pattern and description',
-      () => {
-        component.setUp({
-          metaType: 'Pattern only',
-          modalRef: mockComponent.ctrlRef,
-          deletionObserver: mockComponent.fakeDelete(),
-          pattern: '{sth/!$_8()'
-        });
-        expectSetup('Pattern only', true, false, '{sth/!$_8()', false);
-        clearSetup();
-        component.setUp({
-          metaType: 'Description only',
-          modalRef: mockComponent.ctrlRef,
-          deletionObserver: mockComponent.fakeDelete(),
-          description: mockComponent.modalDescription
-        });
-        expectSetup('Description only', true, false, 'yes', true);
-        clearSetup();
-        component.setUp({
-          metaType: 'Description and pattern',
-          modalRef: mockComponent.ctrlRef,
-          deletionObserver: mockComponent.fakeDelete(),
-          description: mockComponent.modalDescription,
-          pattern: '{sth/!$_8()'
-        });
-        expectSetup('Description and pattern', true, false, '{sth/!$_8()', true);
+    it('should test optional parameters - pattern and description', () => {
+      component.setUp({
+        metaType: 'Pattern only',
+        modalRef: mockComponent.ctrlRef,
+        deletionObserver: mockComponent.fakeDelete(),
+        pattern: '{sth/!$_8()'
+      });
+      expectSetup('Pattern only', true, false, '{sth/!$_8()', false);
+      clearSetup();
+      component.setUp({
+        metaType: 'Description only',
+        modalRef: mockComponent.ctrlRef,
+        deletionObserver: mockComponent.fakeDelete(),
+        description: mockComponent.modalDescription
+      });
+      expectSetup('Description only', true, false, 'yes', true);
+      clearSetup();
+      component.setUp({
+        metaType: 'Description and pattern',
+        modalRef: mockComponent.ctrlRef,
+        deletionObserver: mockComponent.fakeDelete(),
+        description: mockComponent.modalDescription,
+        pattern: '{sth/!$_8()'
       });
+      expectSetup('Description and pattern', true, false, '{sth/!$_8()', true);
+    });
   });
 
   it('should test if the ctrl driven mock is set correctly through mock component', () => {
@@ -338,5 +345,4 @@ describe('DeletionModalComponent', () => {
       });
     });
   });
-
 });
index 4a879c3fcbd12299f15f20113167550ad49955fc..5c90e0e0840806651980ff93bf4ac5d0eab46497 100644 (file)
@@ -1,19 +1,19 @@
+import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
-import { AppModule } from '../../../app.module';
 import { SparklineComponent } from './sparkline.component';
 
 describe('SparklineComponent', () => {
   let component: SparklineComponent;
   let fixture: ComponentFixture<SparklineComponent>;
 
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [AppModule]
-      }).compileComponents();
-    })
-  );
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [SparklineComponent],
+      schemas: [NO_ERRORS_SCHEMA],
+      imports: []
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(SparklineComponent);
index e325d92702a25ac9b5b806ced7c062aae28da0cd..8ef40c416396cb8794f9898198f837cd3cdfea49 100644 (file)
@@ -9,6 +9,7 @@ import {
 } from '@angular/router';
 
 import 'rxjs/add/observable/of';
+import 'rxjs/add/operator/catch';
 import { Observable } from 'rxjs/Observable';
 
 /**
@@ -38,9 +39,7 @@ import { Observable } from 'rxjs/Observable';
  */
 @Injectable()
 export class ModuleStatusGuardService implements CanActivate, CanActivateChild {
-
-  constructor(private http: HttpClient,
-              private router: Router) {}
+  constructor(private http: HttpClient, private router: Router) {}
 
   canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
     return this.doCheck(route);
@@ -52,7 +51,8 @@ export class ModuleStatusGuardService implements CanActivate, CanActivateChild {
 
   private doCheck(route: ActivatedRouteSnapshot) {
     const config = route.data['moduleStatusGuardConfig'];
-    return this.http.get(`/api/${config.apiPath}/status`)
+    return this.http
+      .get(`/api/${config.apiPath}/status`)
       .map((resp: any) => {
         if (!resp.available) {
           this.router.navigate([config.redirectTo, resp.message || '']);
index 23af9836a147a492f6053b6d9f7514c1baadc2ec..2f0c4f9cc33c675d9a8fe82d6d5ad9e26623cd04 100644 (file)
@@ -1,14 +1,14 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { inject, TestBed } from '@angular/core/testing';
 
-import { SharedModule } from '../shared.module';
+import { AuthStorageService } from './auth-storage.service';
 import { SummaryService } from './summary.service';
 
 describe('SummaryService', () => {
   beforeEach(() => {
     TestBed.configureTestingModule({
-      providers: [SummaryService],
-      imports: [HttpClientTestingModule, SharedModule]
+      providers: [SummaryService, AuthStorageService],
+      imports: [HttpClientTestingModule]
     });
   });