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';
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);
+ });
});
});
});