Use of ng-mocks instead of stub 00/5800/2
authorychacon <yennifer.chacon@est.tech>
Fri, 19 Mar 2021 08:16:41 +0000 (09:16 +0100)
committerychacon <yennifer.chacon@est.tech>
Tue, 30 Mar 2021 13:39:32 +0000 (15:39 +0200)
Issue-ID: NONRTRIC-451
Signed-off-by: ychacon <yennifer.chacon@est.tech>
Change-Id: I2c4da73946cfce2fe833ae3bd8424aaf5564093c

webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.spec.ts

index 96ad96f..ed45171 100644 (file)
@@ -19,7 +19,7 @@
  */
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
-import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
 import { HarnessLoader } from '@angular/cdk/testing';
 import { MatButtonModule } from '@angular/material/button';
 import { MatButtonHarness } from '@angular/material/button/testing';
@@ -31,6 +31,8 @@ import { EICoordinatorComponent } from './ei-coordinator.component';
 import { UiService } from '@services/ui/ui.service';
 import { ProducersListComponent } from '@ei-coordinator/producers-list/producers-list.component';
 import { JobsListComponent } from '@ei-coordinator/jobs-list/jobs-list.component';
+import { MockComponent } from 'ng-mocks';
+import { By } from '@angular/platform-browser';
 
 describe('EICoordinatorComponent', () => {
   let component: EICoordinatorComponent;
@@ -51,8 +53,8 @@ describe('EICoordinatorComponent', () => {
       ],
       declarations: [
         EICoordinatorComponent,
-        JobsListStubComponent,
-        ProducerListStubComponent,
+        MockComponent(JobsListComponent),
+        MockComponent(ProducersListComponent),
       ],
       providers: [
         UiService
@@ -100,47 +102,22 @@ describe('EICoordinatorComponent', () => {
 
     it('should refresh tables', async () => {
       let refreshButton = await loader.getHarness(MatButtonHarness.with({ selector: '#refreshButton' }));
-      spyOn(component.producersList, 'loadProducers');
-      spyOn(component.producersList, 'clearFilter');
-      spyOn(component.jobComponent, 'loadJobs');
-      spyOn(component.jobComponent, 'clearFilter');
+
+      const jobsComponent: JobsListComponent = fixture.debugElement.query(By.directive(JobsListComponent)).componentInstance;
+      spyOn(jobsComponent, 'loadJobs');
+      spyOn(jobsComponent, 'clearFilter');
+
+      const prodsComponent: ProducersListComponent = fixture.debugElement.query(By.directive(ProducersListComponent)).componentInstance;
+      spyOn(prodsComponent, 'loadProducers');
+      spyOn(prodsComponent, 'clearFilter');
+
       await refreshButton.click();
 
-      expect(component.jobComponent.loadJobs).toHaveBeenCalled();
-      expect(component.jobComponent.clearFilter).toHaveBeenCalled();
-      expect(component.producersList.loadProducers).toHaveBeenCalled();
-      expect(component.producersList.clearFilter).toHaveBeenCalled();
+      expect(jobsComponent.loadJobs).toHaveBeenCalled();
+      expect(jobsComponent.clearFilter).toHaveBeenCalled();
+      expect(prodsComponent.loadProducers).toHaveBeenCalled();
+      expect(prodsComponent.clearFilter).toHaveBeenCalled();
+
     });
   });
-
-  @Component({
-    selector: 'nrcp-jobs-list',
-    template: '',
-    providers: [
-      {
-        provide: JobsListComponent,
-        useClass: JobsListStubComponent
-      }
-    ]
-  })
-  class JobsListStubComponent {
-    loadJobs() { }
-    clearFilter() { }
-  }
-
-  @Component({
-    selector: 'nrcp-producers-list',
-    template: '',
-    providers: [
-      {
-        provide: ProducersListComponent,
-        useClass: ProducerListStubComponent
-      }
-    ]
-  })
-  class ProducerListStubComponent {
-    loadProducers() { }
-    clearFilter() { }
-  }
-
 });