mirror of
https://github.com/marcogll/passkit-generator.git
synced 2026-03-15 18:25:24 +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);
|
||||
});
|
||||
});
|
||||
|
||||
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
|
||||
* 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
|
||||
* @returns
|
||||
*/
|
||||
|
||||
setLocations(...locations: Schemas.Location[]): this {
|
||||
/**
|
||||
* @TODO implement
|
||||
* @TODO specify a way to get current ones deleted
|
||||
*/
|
||||
setLocations(locations: null): this;
|
||||
setLocations(...locations: Schemas.Location[]): this;
|
||||
setLocations(...locations: (Schemas.Location | null)[]): this {
|
||||
if (locations[0] === null) {
|
||||
delete this[propsSymbol]["locations"];
|
||||
return;
|
||||
}
|
||||
|
||||
this[propsSymbol]["locations"] = Schemas.filterValid(
|
||||
locations,
|
||||
Schemas.Location,
|
||||
);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user