Select Git revision
Jenkinsfile
vorgang.ts 5.32 KiB
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { faker } from '@faker-js/faker';
import { times } from 'lodash-es';
import { toResource } from '../../tech-shared/test/resource';
import { VorgangListLinkRel } from '../src/lib/vorgang.linkrel';
import {
Antragsteller,
ByStatus,
Eingang,
EingangHeader,
ForwardRequest,
Vorgang,
VorgangListResource,
VorgangResource,
VorgangStatistic,
VorgangStatus,
VorgangWithEingang,
VorgangWithEingangResource,
ZustaendigeStelle,
} from '../src/lib/vorgang.model';
export function createVorgang(): Vorgang {
return {
createdAt: faker.date.past(),
name: faker.lorem.word(),
status: faker.helpers.arrayElement([
VorgangStatus.NEU,
VorgangStatus.ABGESCHLOSSEN,
VorgangStatus.BESCHIEDEN,
VorgangStatus.VERWORFEN,
]),
aktenzeichen: faker.lorem.word(),
nummer: faker.lorem.word(),
nextFrist: faker.date.future(),
hasPostfachNachricht: faker.datatype.boolean(),
hasNewPostfachNachricht: faker.datatype.boolean(),
antragBewilligt: false,
};
}
export function createVorgangWithEingang(): VorgangWithEingang {
return { ...createVorgangResource(), eingang: createEingang() };
}
export function createEingang(): Eingang {
return {
id: faker.datatype.uuid(),
antragsteller: createAntragsteller(),
zustaendigeStelle: createZustaendigeStelle(),
header: createHeader(),
formData: {},
numberOfAttachments: getRandomNumber(1, 10),
numberOfRepresentations: getRandomNumber(1, 10),
};
}
function getRandomNumber(min: number, max: number): number {
return faker.datatype.number({ min: min, max: max });
}
export function createAntragsteller(): Antragsteller {
return {
anrede: faker.lorem.word(),
geburtsdatum: faker.date.past().toDateString(),
geburtsname: faker.name.findName(),
geburtsort: faker.address.city(),
nachname: faker.name.lastName(),
vorname: faker.name.firstName(),
firmaName: faker.company.companyName(),
email: faker.internet.email(),
telefon: `+ ${faker.datatype.number(10)}`,
strasse: faker.address.streetName(),
hausnummer: `${faker.datatype.number(2)}a`,
plz: faker.address.countryCode(),
ort: faker.address.city(),
otherData: new Map(),
};
}
export function createZustaendigeStelle(): ZustaendigeStelle {
return {
email: faker.internet.email(),
};
}
export function createHeader(): EingangHeader {
return {
client: faker.lorem.word(),
clientId: faker.lorem.word(),
createdAt: faker.date.past().toDateString(),
customer: faker.lorem.word(),
customerId: faker.lorem.word(),
formId: faker.lorem.word(),
formName: faker.lorem.word(),
requestId: faker.lorem.word(),
sender: faker.lorem.word(),
};
}
export function createVorgangResource(linkRelations: string[] = []): VorgangResource {
return toResource(createVorgang(), linkRelations);
}
export function createVorgangResources(linkRelations: string[] = []): VorgangResource[] {
return times(10, () => toResource(createVorgangResource(), [...linkRelations]));
}
export function createVorgangListResource(linkRelations: string[] = []): VorgangListResource {
return toResource({}, [...linkRelations], {
[VorgangListLinkRel.VORGANG_HEADER_LIST]: createVorgangResources([...linkRelations]),
});
}
export function createVorgangListResourceWithResource(
resources: VorgangResource[],
linkRelations: string[] = [],
): VorgangListResource {
return toResource({}, [...linkRelations], {
[VorgangListLinkRel.VORGANG_HEADER_LIST]: resources,
});
}
export function createVorgangStatistic(): VorgangStatistic {
return {
byStatus: createByStatus(),
wiedervorlagen: faker.datatype.number(),
existsWiedervorlageOverdue: false,
ungeleseneNachrichten: faker.datatype.number(),
};
}
function createByStatus(): ByStatus {
return {
neu: faker.datatype.number(),
angenommen: faker.datatype.number(),
inBearbeitung: faker.datatype.number(),
beschieden: faker.datatype.number(),
abgeschlossen: faker.datatype.number(),
verworfen: faker.datatype.number(),
zuLoeschen: faker.datatype.number(),
};
}
export function createVorgangWithEingangResource(
linkRelations: string[] = [],
): VorgangWithEingangResource {
return toResource(createVorgangWithEingang(), linkRelations);
}
export function createVorgangForwardRequest(): ForwardRequest {
return {
email: faker.internet.email(),
password: faker.internet.password(),
};
}