- });
-
- describe('#producersTable', () => {
- const expectedProducer1Row = { id: 'producer1', types: 'type1,type2', status: 'ENABLED' };
- beforeEach(() => {
- const producers: EIProducer[] =[ producer1, producer2 ];
- producerDataSourceSpy.eiProducers.and.returnValue(producers);
- });
-
- it('should contain data after initialization', async () => {
- component.ngOnInit();
- const expectedProducerRows = [
- expectedProducer1Row,
- {id: 'producer2', types: 'type2,type3', status: 'DISABLED'}
- ];
- let producersTable = await loader.getHarness(MatTableHarness.with({selector: '#producersTable'}));
- let producerRows = await producersTable.getRows();
- expect(producerRows.length).toEqual(2);
- producerRows.forEach(row => {
- row.getCellTextByColumnName().then(values => {
- expect(expectedProducerRows).toContain(jasmine.objectContaining(values));
- });
- });
- });
-
- describe('should display default values for non required properties', () => {
- it('producer defaults', async () => {
- const producerMissingProperties = {
- ei_producer_id: 'producer1'
- } as EIProducer;
- const producers: EIProducer[] =[ producerMissingProperties ];
- producerDataSourceSpy.eiProducers.and.returnValue(producers);
- component.ngOnInit();
-
- const expectedProducerRow = { id: 'producer1', types: '< No types >', status: '< No status >' };
- let producersTable = await loader.getHarness(MatTableHarness.with({selector: '#producersTable'}));
- let producerRows = await producersTable.getRows();
- expect(await producerRows[0].getCellTextByColumnName()).toEqual(expectedProducerRow);
- });
-
- it('job defaults', async () => {
- const jobMissingProperties = {
- ei_job_identity: 'job1',
- target_uri: 'http://one'
- } as EIJob;
- const jobs: EIJob[] =[ jobMissingProperties ];
- jobDataSourceSpy.eiJobs.and.returnValue(jobs);
- component.ngOnInit();
-
- const expectedJobRow = { id: 'job1', typeId: '< No type >', owner: '< No owner >', targetUri: 'http://one' };
- let jobsTable = await loader.getHarness(MatTableHarness.with({selector: '#jobsTable'}));
- let jobRows = await jobsTable.getRows();
- expect(await jobRows[0].getCellTextByColumnName()).toEqual(expectedJobRow);
- });
- });
-
- it('filtering', async () => {
- 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('#jobsTable', () => {
- const expectedJob1Row = { id: 'job1', typeId: 'type1', owner: 'owner1', targetUri: 'http://one' };
- beforeEach(() => {
- const jobs: EIJob[] =[ job1, job2 ];
- jobDataSourceSpy.eiJobs.and.returnValue(jobs);
- });