From 51e4a3d777b02dc0765f09ed270239e0aed32980 Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Tue, 22 Oct 2019 21:15:03 +0200 Subject: [PATCH 1/3] Implement stopTrackingSession method --- src/__test__/solid-auth-client.spec.js | 18 ++++++++++++++++++ src/solid-auth-client.js | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/src/__test__/solid-auth-client.spec.js b/src/__test__/solid-auth-client.spec.js index b63f57d..8a1827a 100644 --- a/src/__test__/solid-auth-client.spec.js +++ b/src/__test__/solid-auth-client.spec.js @@ -411,6 +411,24 @@ describe('trackSession', () => { }) }) +describe('stopTrackingSession', () => { + it('does not call callback on session change', async () => { + expect.assertions(4) + + const callback = jest.fn() + await instance.trackSession(callback) + expect(callback).toHaveBeenCalledTimes(1) + expect(callback).toHaveBeenLastCalledWith(null) + + instance.stopTrackingSession(callback) + + const session = {} + instance.emit('session', session) + expect(callback).toHaveBeenCalledTimes(1) + expect(callback).toHaveBeenLastCalledWith(null) + }) +}) + describe('logout', () => { describe('WebID-OIDC', () => { let expectedIdToken, expectedAccessToken diff --git a/src/solid-auth-client.js b/src/solid-auth-client.js index 0989038..587e672 100644 --- a/src/solid-auth-client.js +++ b/src/solid-auth-client.js @@ -86,6 +86,10 @@ export default class SolidAuthClient extends EventEmitter { this.on('session', callback) } + stopTrackingSession(callback: Function): void { + this.off('session', callback) + } + async logout(storage: AsyncStorage = defaultStorage()): Promise { const session = await getSession(storage) if (session) { From bd1d3c5ffd1e371ffc34a2548e287528dec70a0a Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Wed, 23 Oct 2019 18:23:35 +0200 Subject: [PATCH 2/3] Replace off call with removeListener --- src/solid-auth-client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/solid-auth-client.js b/src/solid-auth-client.js index 587e672..e5ed428 100644 --- a/src/solid-auth-client.js +++ b/src/solid-auth-client.js @@ -87,7 +87,7 @@ export default class SolidAuthClient extends EventEmitter { } stopTrackingSession(callback: Function): void { - this.off('session', callback) + this.removeListener('session', callback) } async logout(storage: AsyncStorage = defaultStorage()): Promise { From 68e7beb0e39118969ed885e2c9ed60f4be7ae088 Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Wed, 23 Oct 2019 18:24:17 +0200 Subject: [PATCH 3/3] Rename stopTrackingSession to stopTrackSession --- src/__test__/solid-auth-client.spec.js | 4 ++-- src/solid-auth-client.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/__test__/solid-auth-client.spec.js b/src/__test__/solid-auth-client.spec.js index 8a1827a..61802bc 100644 --- a/src/__test__/solid-auth-client.spec.js +++ b/src/__test__/solid-auth-client.spec.js @@ -411,7 +411,7 @@ describe('trackSession', () => { }) }) -describe('stopTrackingSession', () => { +describe('stopTrackSession', () => { it('does not call callback on session change', async () => { expect.assertions(4) @@ -420,7 +420,7 @@ describe('stopTrackingSession', () => { expect(callback).toHaveBeenCalledTimes(1) expect(callback).toHaveBeenLastCalledWith(null) - instance.stopTrackingSession(callback) + instance.stopTrackSession(callback) const session = {} instance.emit('session', session) diff --git a/src/solid-auth-client.js b/src/solid-auth-client.js index e5ed428..d641e8f 100644 --- a/src/solid-auth-client.js +++ b/src/solid-auth-client.js @@ -86,7 +86,7 @@ export default class SolidAuthClient extends EventEmitter { this.on('session', callback) } - stopTrackingSession(callback: Function): void { + stopTrackSession(callback: Function): void { this.removeListener('session', callback) }