Skip to content
Snippets Groups Projects
aggregation-mapping.helper.ts 2.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • Albert Bruns's avatar
    Albert Bruns committed
    import { AggregationMapping, FieldMapping } from '@admin-client/reporting-shared';
    import { AggregationMappingFormE2EComponent } from '../../components/aggregation-mapping/aggregation-mapping-form.e2e.component';
    import { AggregationMappingE2EComponent } from '../../components/aggregation-mapping/aggregation-mapping.e2e.component';
    import { enterWith, haveText, haveValue } from '../../support/cypress.util';
    
    export class E2EAggregationMappingHelper {
      private component: AggregationMappingE2EComponent = new AggregationMappingE2EComponent();
      private formComponent: AggregationMappingFormE2EComponent = new AggregationMappingFormE2EComponent();
    
      public enterName(text: string): void {
        enterWith(this.formComponent.getNameInput(), text);
      }
    
      public enterFormEngine(text: string): void {
        enterWith(this.formComponent.getFormEngineInput(), text);
      }
    
      public enterFormId(text: string): void {
        enterWith(this.formComponent.getFormIdInput(), text);
      }
    
      public enterSourcePath(text: string, index: number): void {
        enterWith(this.formComponent.getSourceMappingFieldInput(index), text);
      }
    
      public enterTargetPath(text: string, index: number): void {
        enterWith(this.formComponent.getTargetMappingFieldInput(index), text);
      }
    
      public enterFieldMapping(fieldMapping: FieldMapping, index: number): void {
        this.enterSourcePath(fieldMapping.sourcePath, index);
        this.enterTargetPath(fieldMapping.targetPath, index);
      }
    
      public enterForm(aggregationMapping: AggregationMapping): void {
        this.enterName(aggregationMapping.name);
        this.enterFormEngine(aggregationMapping.formIdentifier.formEngineName);
        this.enterFormId(aggregationMapping.formIdentifier.formId);
    
        aggregationMapping.mappings.forEach((fieldMapping, index) => {
          this.enterFieldMapping(fieldMapping, index);
        });
      }
    
      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 {
        haveText(this.component.getListItemName(), aggregationMapping.name);
        haveText(this.component.getListItemFormEngineName(), aggregationMapping.formIdentifier.formEngineName);
        haveText(this.component.getListItemFormId(), aggregationMapping.formIdentifier.formId);
      }
    }