mirror of
https://github.com/marcogll/passkit-generator.git
synced 2026-03-15 18:25:24 +00:00
Added implementation of transitType along with tests to be modified yet and tested when we'll have a good content saving
This commit is contained in:
@@ -338,4 +338,55 @@ describe("PKPass", () => {
|
|||||||
expect(pass.props["barcodes"]).toBe(undefined);
|
expect(pass.props["barcodes"]).toBe(undefined);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("transitType", () => {
|
||||||
|
it("should accept a new value only if the pass is a boarding pass", () => {
|
||||||
|
const mockBPPassJSON = Buffer.from(
|
||||||
|
JSON.stringify({
|
||||||
|
boardingPass: {},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
const mockCPPassJSON = Buffer.from(
|
||||||
|
JSON.stringify({
|
||||||
|
coupon: {},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
const passBP = new PKPass(
|
||||||
|
{
|
||||||
|
"pass.json": mockBPPassJSON,
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
);
|
||||||
|
|
||||||
|
const passCP = new PKPass(
|
||||||
|
{
|
||||||
|
"pass.json": mockCPPassJSON,
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @TODO fix this test when props setup
|
||||||
|
* will be complete
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* expect(() => {
|
||||||
|
passBP.transitType = "PKTransitTypeAir";
|
||||||
|
}).toThrowError(
|
||||||
|
TypeError,
|
||||||
|
"Cannot set transitType on a pass with type different from 'boardingPass'.",
|
||||||
|
); */
|
||||||
|
// expect(passBP.transitType).toBe("PKTransitTypeAir");
|
||||||
|
|
||||||
|
/* expect(
|
||||||
|
() => (passCP.transitType = "PKTransitTypeAir"),
|
||||||
|
).toThrowError(
|
||||||
|
TypeError,
|
||||||
|
"Cannot set transitType on a pass with type different from 'boardingPass'.",
|
||||||
|
);
|
||||||
|
expect(passCP.transitType).toBeUndefined(); */
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -141,11 +141,24 @@ export default class PKPass extends Bundle {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
set transitType(value: TransitTypes) {
|
set transitType(value: TransitTypes) {
|
||||||
|
if (!this[propsSymbol].boardingPass) {
|
||||||
|
throw new TypeError(
|
||||||
|
"Cannot set transitType on a pass with type different from 'boardingPass'.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @TODO implement
|
* @TODO Make getValidated more explicit in case of error.
|
||||||
* @TODO validate against schema
|
* @TODO maybe make an automated error.
|
||||||
* @TODO save into props
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (!Schemas.getValidated(value, Schemas.TransitType)) {
|
||||||
|
throw new TypeError(
|
||||||
|
`Cannot set transitType to '${value}': invalid type. Expected one of PKTransitTypeAir, PKTransitTypeBoat, PKTransitTypeBus, PKTransitTypeGeneric, PKTransitTypeTrain.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
this[propsSymbol]["boardingPass"].transitType = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -154,12 +167,7 @@ export default class PKPass extends Bundle {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
get transitType(): TransitTypes {
|
get transitType(): TransitTypes {
|
||||||
/**
|
return this[propsSymbol]["boardingPass"]?.transitType;
|
||||||
* @TODO implement
|
|
||||||
* @TODO read from props
|
|
||||||
*/
|
|
||||||
|
|
||||||
return undefined;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// **************************** //
|
// **************************** //
|
||||||
|
|||||||
Reference in New Issue
Block a user