Fixed tests, added tests, fixed ducked up things

This commit is contained in:
Alexander Cerutti
2021-10-11 23:04:09 +02:00
parent cba4d10fd0
commit 928081ecfc
6 changed files with 216 additions and 134 deletions

View File

@@ -1,12 +1,24 @@
import Joi from "joi";
import { Field } from "./PassFieldContent";
export type TransitType =
| "PKTransitTypeAir"
| "PKTransitTypeBoat"
| "PKTransitTypeBus"
| "PKTransitTypeGeneric"
| "PKTransitTypeTrain";
export const TransitType = Joi.string().regex(
/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/,
);
export interface PassFields {
auxiliaryFields: (Field & { row?: number })[];
backFields: Field[];
headerFields: Field[];
primaryFields: Field[];
secondaryFields: Field[];
transitType?: TransitType;
}
export const PassFields = Joi.object<PassFields>().keys({
@@ -21,15 +33,5 @@ export const PassFields = Joi.object<PassFields>().keys({
headerFields: Joi.array().items(Field),
primaryFields: Joi.array().items(Field),
secondaryFields: Joi.array().items(Field),
transitType: TransitType,
});
export type TransitType =
| "PKTransitTypeAir"
| "PKTransitTypeBoat"
| "PKTransitTypeBus"
| "PKTransitTypeGeneric"
| "PKTransitTypeTrain";
export const TransitType = Joi.string().regex(
/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/,
);

View File

@@ -103,13 +103,11 @@ export const PassPropsFromMethods = Joi.object<PassPropsFromMethods>({
});
export const PassKindsProps = Joi.object<PassKindsProps>({
coupon: Joi.array().items(Field),
generic: Joi.array().items(Field),
storeCard: Joi.array().items(Field),
eventTicket: Joi.array().items(Field),
boardingPass: Joi.array().items(
Field.concat(Joi.object({ transitType: TransitType })),
),
coupon: PassFields.disallow("transitType"),
generic: PassFields.disallow("transitType"),
storeCard: PassFields.disallow("transitType"),
eventTicket: PassFields.disallow("transitType"),
boardingPass: PassFields,
});
export const PassType = Joi.string().regex(
@@ -144,11 +142,10 @@ export const OverridablePassProps = Joi.object<OverridablePassProps>({
export const PassProps = Joi.object<
OverridablePassProps & PassKindsProps & PassPropsFromMethods
>({
...OverridablePassProps,
...PassKindsProps,
...PassPropsFromMethods,
});
>()
.concat(OverridablePassProps)
.concat(PassKindsProps)
.concat(PassPropsFromMethods);
export interface Template {
model: string;