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

@@ -51,7 +51,7 @@ export default class Bundle {
mimeType: `${Mime.type}/${Mime.subtype}`,
): [Bundle, Function] {
const bundle = new Bundle(mimeType);
return [bundle, bundle[freezeSymbol]];
return [bundle, () => bundle[freezeSymbol]()];
}
/**
@@ -69,8 +69,8 @@ export default class Bundle {
}
/**
* Tells if this bundle still allows files to be added
* @returns
* Tells if this bundle still allows files to be added.
* @returns false if files are allowed, true otherwise
*/
public get isFrozen() {

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;