From a981571c42b8b1ca7819b617883777cc85d104ae Mon Sep 17 00:00:00 2001 From: Alexander Cerutti Date: Fri, 28 Jun 2019 00:18:55 +0200 Subject: [PATCH] Fixed beacons and locations content getting --- spec/index.ts | 12 ++++++++---- src/pass.ts | 19 ++++++++----------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/spec/index.ts b/spec/index.ts index 4e8b3e9..bb56934 100644 --- a/spec/index.ts +++ b/spec/index.ts @@ -120,7 +120,7 @@ describe("Node-Passkit-generator", function () { }); // @ts-ignore -- Ignoring for test purposes - expect(pass._props["locations"].length).toBe(oldAmountOfLocations); + expect(pass.locations().length).toBe(oldAmountOfLocations); }); it("Two locations, with one invalid, will be filtered", () => { @@ -136,12 +136,14 @@ describe("Node-Passkit-generator", function () { }); // @ts-ignore -- Ignoring for test purposes - expect(pass._props["locations"].length).toBe(oldAmountOfLocations+1); + expect(pass.locations().length).toBe(oldAmountOfLocations+1); }); }); describe("Beacons :: ", () => { it("One-Invalid-schema beacon data won't apply changes", () => { + const oldBeacons = pass.beacons(); + pass.beacons({ // @ts-ignore "ibrupofene": "no", @@ -151,10 +153,12 @@ describe("Node-Passkit-generator", function () { }); // @ts-ignore -- Ignoring for test purposes - expect(pass._props["beacons"]).toBe(undefined); + expect(pass.beacons()).toBe(oldBeacons ? oldBeacons.length : undefined); }); it("Two beacons sets, with one invalid, will be filtered", () => { + const oldBeacons = pass.beacons(); + pass.beacons({ "major": 55, "minor": 0, @@ -168,7 +172,7 @@ describe("Node-Passkit-generator", function () { }); // @ts-ignore -- Ignoring for test purposes - expect(pass._props["beacons"].length).toBe(1); + expect(pass.beacons().length).toBe(oldBeacons ? oldBeacons.length+1 : 1); }); }); }); diff --git a/src/pass.ts b/src/pass.ts index 2dd49d2..7320639 100644 --- a/src/pass.ts +++ b/src/pass.ts @@ -274,13 +274,13 @@ export class Pass implements PassIndexSignature { */ beacons(...data: schema.Beacon[]): PassWithLengthField | schema.Beacon[] { - if (data === undefined) { - return this._props["beacons"]; + if (data === null) { + delete this._props["beacons"]; + return assignLength(0, this); } if (!data.length) { - this._props["beacons"] = []; - return assignLength(0, this); + return this._props["beacons"]; } const validBeacons = data.reduce((acc, current) => { @@ -307,13 +307,13 @@ export class Pass implements PassIndexSignature { */ locations(...data: schema.Location[]): PassWithLengthField | schema.Location[] { - if (data === undefined) { - return this._props["locations"]; + if (data === null) { + delete this._props["locations"]; + return assignLength(0, this); } if (!data.length) { - this._props["locations"] = []; - return assignLength(0, this); + return this._props["locations"]; } const validLocations = data.reduce((acc, current) => { @@ -328,8 +328,6 @@ export class Pass implements PassIndexSignature { return assignLength(0, this); } - console.log("Locations:", this._props["locations"]); - (this._props["locations"] || (this._props["locations"] = [])).push(...validLocations); return assignLength(this._props["locations"].length, this); @@ -377,7 +375,6 @@ export class Pass implements PassIndexSignature { */ barcode(first?: string | schema.Barcode, ...data: schema.Barcode[]): PassWithBarcodeMethods | schema.Barcode[] { - console.log(first, data); if (first === undefined && (data === undefined || !data.length)) { return this._props["barcodes"]; }