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); } }