Skip to content
Snippets Groups Projects
aggregation-mapping.ts 1.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { AggregationMappingListLinkRel } from '@admin-client/reporting-shared';
    
    import { faker } from '@faker-js/faker';
    import { times } from 'lodash-es';
    import { LinkRelationName } from '../../../tech-shared/src';
    import { toResource } from '../../../tech-shared/test/resource';
    import { AggregationMapping, AggregationMappingListResource, AggregationMappingResource } from '../src';
    
    export function createAggregationMapping(): AggregationMapping {
      return {
    
        name: faker.word.noun(),
    
        formIdentifier: {
          formEngineName: faker.lorem.word(),
          formId: faker.string.uuid(),
        },
        mappings: [
          {
            sourcePath: faker.lorem.word(),
            targetPath: faker.lorem.word(),
          },
        ],
      };
    }
    
    export function createAggregationMappingResource(linkRelations: LinkRelationName[] = []): AggregationMappingResource {
      return toResource(createAggregationMapping(), linkRelations);
    }
    
    export function createAggregationMappingResources(linkRelations: LinkRelationName[] = []): AggregationMappingResource[] {
    
      return times(10, () => createAggregationMappingResource(linkRelations));
    
    }
    
    export function createAggregationMappingListResource(linkRelations: LinkRelationName[] = []): AggregationMappingListResource {
    
      return toResource({}, linkRelations, {
    
        [AggregationMappingListLinkRel.LIST]: createAggregationMappingResources(),
      });
    }