mirror of
https://github.com/marcogll/passkit-generator.git
synced 2026-03-15 19:25:23 +00:00
Added implementation of setLocations along with tests
This commit is contained in:
@@ -45,4 +45,54 @@ describe("PKPass", () => {
|
|||||||
expect(pass.props["beacons"].length).toBe(1);
|
expect(pass.props["beacons"].length).toBe(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("setLocations", () => {
|
||||||
|
it("should reset instance.props['locations'] if 'null' is passed as value", () => {
|
||||||
|
const pass = new PKPass({}, {});
|
||||||
|
|
||||||
|
pass.setLocations({
|
||||||
|
longitude: 0.25456342344,
|
||||||
|
latitude: 0.26665773234,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(pass.props["locations"].length).toBe(1);
|
||||||
|
|
||||||
|
pass.setLocations(null);
|
||||||
|
|
||||||
|
expect(pass.props["locations"]).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should filter out invalid beacons objects", () => {
|
||||||
|
const pass = new PKPass({}, {});
|
||||||
|
|
||||||
|
pass.setLocations(
|
||||||
|
{
|
||||||
|
// @ts-expect-error
|
||||||
|
longitude: "unknown",
|
||||||
|
// @ts-expect-error
|
||||||
|
latitude: "unknown",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
altitude: "say hello from here",
|
||||||
|
longitude: 0.25456342344,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
longitude: 0.25456342344,
|
||||||
|
latitude: 0.26665773234,
|
||||||
|
altitude: 12552.31233321,
|
||||||
|
relevantText:
|
||||||
|
/** Hi mom, see how do I fly! */
|
||||||
|
"Ciao mamma, guarda come volooo!",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(pass.props["locations"].length).toBe(1);
|
||||||
|
expect(pass.props["locations"][0].longitude).toBe(0.25456342344);
|
||||||
|
expect(pass.props["locations"][0].latitude).toBe(0.26665773234);
|
||||||
|
expect(pass.props["locations"][0].altitude).toBe(12552.31233321);
|
||||||
|
expect(pass.props["locations"][0].relevantText).toBe(
|
||||||
|
"Ciao mamma, guarda come volooo!",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -318,15 +318,33 @@ export default class PKPass extends Bundle {
|
|||||||
* Allows setting some locations the OS should
|
* Allows setting some locations the OS should
|
||||||
* react to and show this pass.
|
* react to and show this pass.
|
||||||
*
|
*
|
||||||
|
* Pass `null` to remove them at all.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* ```ts
|
||||||
|
* PKPassInstance.setLocations(null)
|
||||||
|
* PKPassInstance.setLocations({
|
||||||
|
* latitude: 0.5333245342
|
||||||
|
* longitude: 0.2135332252
|
||||||
|
* });
|
||||||
|
* ```
|
||||||
|
*
|
||||||
* @param locations
|
* @param locations
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
|
|
||||||
setLocations(...locations: Schemas.Location[]): this {
|
setLocations(locations: null): this;
|
||||||
/**
|
setLocations(...locations: Schemas.Location[]): this;
|
||||||
* @TODO implement
|
setLocations(...locations: (Schemas.Location | null)[]): this {
|
||||||
* @TODO specify a way to get current ones deleted
|
if (locations[0] === null) {
|
||||||
*/
|
delete this[propsSymbol]["locations"];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this[propsSymbol]["locations"] = Schemas.filterValid(
|
||||||
|
locations,
|
||||||
|
Schemas.Location,
|
||||||
|
);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user