Merge "Adding a few tests in the EI part of the frontend"
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / ei-coordinator / producers-list / producers-list.component.spec.ts
index ce54d18..77f1cb8 100644 (file)
@@ -5,15 +5,15 @@ import { HarnessLoader } from '@angular/cdk/testing';
 import { MatTableHarness } from '@angular/material/table/testing';
 import { MatSortHarness } from '@angular/material/sort/testing';
 import { ProducersListComponent } from "./producers-list.component";
-import { EIService } from 'src/app/services/ei/ei.service';
-import { EIProducer, OperationalState, ProducerRegistrationInfo, ProducerStatus } from 'src/app/interfaces/ei.types';
+import { EIService } from '@services/ei/ei.service';
+import { EIProducer, OperationalState, ProducerRegistrationInfo, ProducerStatus } from '@interfaces/ei.types';
 import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
 import { ReactiveFormsModule } from '@angular/forms';
 import { MatIconModule } from '@angular/material/icon';
 import { MatTableModule } from '@angular/material/table';
 import { MatInputHarness } from '@angular/material/input/testing';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { UiService } from 'src/app/services/ui/ui.service';
+import { UiService } from '@services/ui/ui.service';
 import { of } from 'rxjs';
 import { MatSortModule } from '@angular/material/sort';
 
@@ -198,6 +198,49 @@ describe('ProducersListComponent', () => {
         prodRows = await producersTable.getRows();
         expect(await prodRows[prodRows.length - 1].getCellTextByColumnName()).toEqual(expectedProducer1Row);
       });
+
+      it('should not sort when clicking on the filter input field', async () => {
+        setServiceSpy();
+        let producersTable = await loader.getHarness(MatTableHarness.with({ selector: '#producersTable' }));
+        let producerRows = await producersTable.getRows();
+        let producerIdFilter = await loader.getHarness(MatInputHarness.with({ selector: '#producerIdFilter'}));
+        let producerTypesFilter = await loader.getHarness(MatInputHarness.with({ selector: '#producerTypesFilter'}));
+        let producerStatusFilter = await loader.getHarness(MatInputHarness.with({ selector: '#producerStatusFilter'}));
+        let producerIds, producerTypes, producerStatuses: String[];
+        let unfilteredProducerIds, unfilteredProducerTypes, unfilteredProducerStatuses: String[];
+
+        for (let i = 0; i < producerRows.length; i++) {
+          producerRows[i].getCellTextByColumnName().then((value) => {
+            producerIds.push(value[0]);
+            producerTypes.push(value[1]);
+            producerStatuses.push(value[2]);
+          });
+        };
+
+        producerIdFilter.setValue("");
+        for (let i = 0; i < producerRows.length; i++) {
+          producerRows[i].getCellTextByColumnName().then((value) => {
+            unfilteredProducerIds.push(value[0]);
+          });
+        };
+        expect(unfilteredProducerIds).toBe(producerIds);
+
+        producerTypesFilter.setValue("");
+        for (let i = 0; i < producerRows.length; i++) {
+          producerRows[i].getCellTextByColumnName().then((value) => {
+            unfilteredProducerTypes.push(value[1]);
+          });
+        };
+        expect(unfilteredProducerTypes).toBe(producerTypes);
+
+        producerStatusFilter.setValue("");
+        for (let i = 0; i < producerRows.length; i++) {
+          producerRows[i].getCellTextByColumnName().then((value) => {
+            unfilteredProducerStatuses.push(value[2]);
+          });
+        };
+        expect(unfilteredProducerStatuses).toBe(producerStatuses);
+      });
     });
   });
 });