From 1bcaa91700e144fe007d43147cc152f4fc019b49 Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Thu, 8 Dec 2022 14:33:32 +0000 Subject: [PATCH 1/2] fix: destructured save --- packages/access-client/src/agent-data.js | 3 ++- .../access-client/test/agent-data.test.js | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 packages/access-client/test/agent-data.test.js diff --git a/packages/access-client/src/agent-data.js b/packages/access-client/src/agent-data.js index 2180085a1..a7fed91f5 100644 --- a/packages/access-client/src/agent-data.js +++ b/packages/access-client/src/agent-data.js @@ -20,7 +20,8 @@ export class AgentData { this.spaces = data.spaces this.delegations = data.delegations this.currentSpace = data.currentSpace - this.#save = options.store ? options.store.save : () => {} + this.#save = (data) => + options.store ? options.store.save(data) : undefined } /** diff --git a/packages/access-client/test/agent-data.test.js b/packages/access-client/test/agent-data.test.js new file mode 100644 index 000000000..f262898fb --- /dev/null +++ b/packages/access-client/test/agent-data.test.js @@ -0,0 +1,24 @@ +import assert from 'assert' +import { AgentData } from '../src/agent-data.js' + +describe('AgentData', () => { + it('should not destructure store methods', async () => { + class Store { + async open() {} + async close() {} + async load() { + + } + + async reset() {} + async save() { + if (!(this instanceof Store)) { + throw new TypeError('unexpected this value') + } + } + } + const store = new Store() + const data = await AgentData.create(undefined, { store }) + await assert.doesNotReject(data.setCurrentSpace('did:x:y')) + }) +}) From c9d975d81ef75c438fa66576e72dc928c756f59e Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Thu, 8 Dec 2022 14:36:50 +0000 Subject: [PATCH 2/2] chore: appease linter --- packages/access-client/test/agent-data.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/access-client/test/agent-data.test.js b/packages/access-client/test/agent-data.test.js index f262898fb..cee8eca04 100644 --- a/packages/access-client/test/agent-data.test.js +++ b/packages/access-client/test/agent-data.test.js @@ -3,11 +3,13 @@ import { AgentData } from '../src/agent-data.js' describe('AgentData', () => { it('should not destructure store methods', async () => { + // eslint-disable-next-line unicorn/no-await-expression-member + const raw = (await AgentData.create()).export() class Store { async open() {} async close() {} async load() { - + return raw } async reset() {}