- it('filtering', async () => {
- component.ngOnInit();
- let jobsTable = await loader.getHarness(MatTableHarness.with({ selector: '#jobsTable' }));
-
- let idFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobIdFilter' }));
- await idFilterInput.setValue("1");
- let jobRows = await jobsTable.getRows();
- expect(jobRows.length).toEqual(1);
- expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
-
- idFilterInput.setValue('');
- let typeIdFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobTypeIdFilter' }));
- await typeIdFilterInput.setValue("1");
- jobRows = await jobsTable.getRows();
- expect(jobRows.length).toEqual(1);
-
- typeIdFilterInput.setValue('');
- let ownerFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobOwnerFilter' }));
- await ownerFilterInput.setValue("1");
- jobRows = await jobsTable.getRows();
- expect(jobRows.length).toEqual(1);
- expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
-
- ownerFilterInput.setValue('');
- let targetUriFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobTargetUriFilter' }));
- await targetUriFilterInput.setValue("one");
- jobRows = await jobsTable.getRows();
- expect(jobRows.length).toEqual(1);
- expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
+ let idFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobIdFilter' }));
+ await idFilterInput.setValue("1");
+ let jobRows = await jobsTable.getRows();
+ expect(jobRows.length).toEqual(2);
+ expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
+
+ idFilterInput.setValue('');
+ let typeIdFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobTypeIdFilter' }));
+ await typeIdFilterInput.setValue("1");
+ jobRows = await jobsTable.getRows();
+ expect(jobRows.length).toEqual(2);
+
+ typeIdFilterInput.setValue('');
+ let ownerFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobOwnerFilter' }));
+ await ownerFilterInput.setValue("1");
+ jobRows = await jobsTable.getRows();
+ expect(jobRows.length).toEqual(2);
+ expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
+
+ ownerFilterInput.setValue('');
+ let targetUriFilterInput = await loader.getHarness(MatInputHarness.with({ selector: '#jobTargetUriFilter' }));
+ await targetUriFilterInput.setValue("one");
+ jobRows = await jobsTable.getRows();
+ expect(jobRows.length).toEqual(2);
+ expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
+ });
+
+ 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(5);
+
+ 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 jobsTable = await loader.getHarness(MatTableHarness.with({ selector: '#jobsTable' }));
+ const firstHeader = (await sort.getSortHeaders())[0];
+ expect(await firstHeader.getSortDirection()).toBe('');
+
+ await firstHeader.click();
+ expect(await firstHeader.getSortDirection()).toBe('asc');
+ let jobRows = await jobsTable.getRows();
+ jobRows = await jobsTable.getRows();
+ expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJob1Row);
+
+ await firstHeader.click();
+ expect(await firstHeader.getSortDirection()).toBe('desc');
+ jobRows = await jobsTable.getRows();
+ expect(await jobRows[jobRows.length - 1].getCellTextByColumnName()).toEqual(expectedJob1Row);
+ });
+ });
+
+ describe('#paging', () => {
+ it('should work properly on the table', async () => {
+ let eiServiceSpy = TestBed.inject(EIService) as jasmine.SpyObj<EIService>;
+ eiServiceSpy.getProducerIds.and.returnValue(of(['producer1', 'producer2']));
+ eiServiceSpy.getJobsForProducer.and.returnValue(of([eijob1, eijob2, eijob1]));
+
+ const paging = await loader.getHarness(MatPaginatorHarness);
+ await paging.setPageSize(5);
+
+ let jobsTable = await loader.getHarness(MatTableHarness.with({ selector: '#jobsTable' }));
+ let jobRows = await jobsTable.getRows();
+ expect(jobRows.length).toEqual(5);
+
+ await paging.goToNextPage();
+ jobRows = await jobsTable.getRows();
+ expect(jobRows.length).toEqual(1);
+ const expectedRow = { jobId: 'job1', prodId: 'producer2', typeId: 'type1', owner: 'owner1', targetUri: 'http://one' };
+ expect(await jobRows[jobRows.length - 1].getCellTextByColumnName()).toEqual(expectedRow);
+ });
+ });