- it('filtering', async () => {
- const expectedProducer1Row = { id: 'producer1', types: 'type1,type2', status: 'ENABLED' };
- component.ngOnInit();
- let producersTable = await loader.getHarness(MatTableHarness.with({ selector: '#producersTable' }));
-
- let idFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#producerIdFilter' }));
- await idFilterInput.setValue("1");
- let producerRows = await producersTable.getRows();
- expect(producerRows.length).toEqual(1);
- expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
-
- idFilterInput.setValue('');
- let typesFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#producerTypesFilter' }));
- await typesFilterInput.setValue("1");
- producerRows = await producersTable.getRows();
- expect(producerRows.length).toEqual(1);
- expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
- await typesFilterInput.setValue("2");
- producerRows = await producersTable.getRows();
- expect(producerRows.length).toEqual(2);
-
- typesFilterInput.setValue('');
- let statusFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#producerStatusFilter' }));
- await statusFilterInput.setValue("enabled");
- producerRows = await producersTable.getRows();
- expect(producerRows.length).toEqual(1);
- expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
+ it('filtering', async () => {
+ setServiceSpy();
+ component.ngOnInit();
+ let producersTable = await loader.getHarness(MatTableHarness.with({ selector: '#producersTable' }));
+
+ let idFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#producerIdFilter' }));
+ await idFilterInput.setValue("1");
+ let producerRows = await producersTable.getRows();
+ expect(producerRows.length).toEqual(1);
+ expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
+
+ idFilterInput.setValue('');
+ let typesFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#producerTypesFilter' }));
+ await typesFilterInput.setValue("1");
+ producerRows = await producersTable.getRows();
+ expect(producerRows.length).toEqual(1);
+ expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
+ await typesFilterInput.setValue("2");
+ producerRows = await producersTable.getRows();
+ expect(producerRows.length).toEqual(2);
+
+ typesFilterInput.setValue('');
+ let statusFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#producerStatusFilter' }));
+ await statusFilterInput.setValue("enabled");
+ producerRows = await producersTable.getRows();
+ expect(producerRows.length).toEqual(1);
+ expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
+ });
+
+ describe('#sorting', () => {
+
+ it('should verify sort functionality on the table', async () => {
+ setServiceSpy();
+ const sort = await loader.getHarness(MatSortHarness);
+ let headers = await sort.getSortHeaders({ sortDirection: '' });
+ expect(headers.length).toBe(3);
+
+ await headers[0].click();
+ expect(await headers[0].isActive()).toBe(true);
+ expect(await headers[0].getSortDirection()).toBe('asc');
+
+ await headers[0].click();
+ expect(await headers[0].getSortDirection()).toBe('desc');
+
+ });
+
+ it('should sort table asc and desc by first header', async () => {
+ setServiceSpy();
+ const sort = await loader.getHarness(MatSortHarness);
+ let producersTable = await loader.getHarness(MatTableHarness.with({ selector: '#producersTable' }));
+ const firstHeader = (await sort.getSortHeaders())[0];
+ expect(await firstHeader.getSortDirection()).toBe('');
+
+ await firstHeader.click();
+ expect(await firstHeader.getSortDirection()).toBe('asc');
+ let prodRows = await producersTable.getRows();
+ prodRows = await producersTable.getRows();
+ expect(await prodRows[0].getCellTextByColumnName()).toEqual(expectedProducer1Row);
+
+ await firstHeader.click();
+ expect(await firstHeader.getSortDirection()).toBe('desc');
+ 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);
+ });
+ });