1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2026-01-03 23:22:30 +03:00

Make setDeafultKeyId wait for event

This commit is contained in:
David Baker
2019-11-13 14:42:08 +00:00
parent d12c56a623
commit 1798f3921f
2 changed files with 20 additions and 5 deletions

View File

@@ -138,7 +138,9 @@ describe("Secrets", function() {
const newKeyId = await alice.addSecretKey(
'm.secret_storage.v1.curve25519-aes-sha2',
);
await alice.setDefaultKeyId(newKeyId);
// we don't await on this because it waits for the event to come down the sync
// which won't happen in the test setup
alice.setDefaultKeyId(newKeyId);
await alice.storeSecret("foo", "bar");
const accountData = alice.getAccountData('foo');

View File

@@ -43,10 +43,23 @@ export default class SecretStorage extends EventEmitter {
}
setDefaultKeyId(keyId) {
return this._baseApis.setAccountData(
'm.secret_storage.default_key',
{ key: keyId },
);
return new Promise((resolve) => {
const listener = (ev) => {
if (
ev.getType() === 'm.secret_storage.default_key' &&
ev.getContent().key === keyId
) {
this._baseApis.removeListener('accountData', listener);
resolve();
}
};
this._baseApis.on('accountData', listener);
this._baseApis.setAccountData(
'm.secret_storage.default_key',
{ key: keyId },
);
});
}
/**