Skip to content
Snippets Groups Projects
aggregation-mapping.verifier.ts 1.83 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { AggregationMapping, FieldMapping } from '@admin-client/reporting-shared';
    import { AggregationMappingFormE2EComponent } from '../../components/aggregation-mapping/aggregation-mapping-form.e2e.component';
    import {
      AggregationMappingE2EComponent,
      AggregationMappingListItemE2EComponent,
    } from '../../components/aggregation-mapping/aggregation-mapping.e2e.component';
    import { haveText, haveValue } from '../../support/cypress.util';
    
    export class E2EAggregationMappingVerifier {
      private component: AggregationMappingE2EComponent = new AggregationMappingE2EComponent();
      private formComponent: AggregationMappingFormE2EComponent = new AggregationMappingFormE2EComponent();
    
      public verifyFieldMapping(fieldMapping: FieldMapping, index: number): void {
        haveValue(this.formComponent.getSourceMappingFieldInput(index), fieldMapping.sourcePath);
        haveValue(this.formComponent.getTargetMappingFieldInput(index), fieldMapping.targetPath);
      }
    
      public verifyForm(aggregationMapping: AggregationMapping): void {
        haveValue(this.formComponent.getNameInput(), aggregationMapping.name);
        haveValue(this.formComponent.getFormEngineInput(), aggregationMapping.formIdentifier.formEngineName);
        haveValue(this.formComponent.getFormIdInput(), aggregationMapping.formIdentifier.formId);
    
        aggregationMapping.mappings.forEach((fieldMapping, index) => {
          this.verifyFieldMapping(fieldMapping, index);
        });
      }
    
      public verifyAggregationMappingInList(aggregationMapping: AggregationMapping): void {
        const listItem: AggregationMappingListItemE2EComponent = this.component.getListItem(aggregationMapping.name);
        haveText(listItem.getName(), aggregationMapping.name);
        haveText(listItem.getFormEngineName(), aggregationMapping.formIdentifier.formEngineName);
        haveText(listItem.getFormId(), aggregationMapping.formIdentifier.formId);
      }
    }