diff --git a/packages/sdk-js/readme.md b/packages/sdk-js/readme.md index 3322f80a44..d63b161ede 100644 --- a/packages/sdk-js/readme.md +++ b/packages/sdk-js/readme.md @@ -89,9 +89,10 @@ Research private class property used in extended class. - [x] Update - [x] Delete - [x] Invite - - [ ] Accept Invite - - [ ] Enable TFA - - [ ] Disable TFA + - [x] Accept Invite + - [x] Enable TFA + - [x] Disable TFA + - [ ] Me - [x] Utils - [x] Get random string - [x] Hash a value diff --git a/packages/sdk-js/src/handlers/users.ts b/packages/sdk-js/src/handlers/users.ts index 2eae22e5eb..b4683abf94 100644 --- a/packages/sdk-js/src/handlers/users.ts +++ b/packages/sdk-js/src/handlers/users.ts @@ -13,4 +13,13 @@ export class UsersHandler extends ItemsHandler { async acceptInvite(token: string, password: string) { await this.axios.post('/users/invite/accept', { token, password }); } + + tfa = { + enable: async (password: string) => { + await this.axios.post('/users/tfa/enable', { password }); + }, + disable: async (otp: string) => { + await this.axios.post('/users/tfa/disable', { otp }); + }, + }; } diff --git a/packages/sdk-js/tests/handlers/users.ts b/packages/sdk-js/tests/handlers/users.ts index 3d8ffe2fde..af87201639 100644 --- a/packages/sdk-js/tests/handlers/users.ts +++ b/packages/sdk-js/tests/handlers/users.ts @@ -55,4 +55,28 @@ describe('UsersHandler', () => { }); }); }); + + describe('tfa.enable', () => { + it('Calls the /users/tfa/enable endpoint', async () => { + const stub = sandbox.stub(handler.axios, 'post').resolves(Promise.resolve()); + + await handler.tfa.enable('p455w0rd'); + + expect(stub).to.have.been.calledWith('/users/tfa/enable', { + password: 'p455w0rd', + }); + }); + }); + + describe('tfa.disable', () => { + it('Calls the /users/tfa/disable endpoint', async () => { + const stub = sandbox.stub(handler.axios, 'post').resolves(Promise.resolve()); + + await handler.tfa.disable('351851'); + + expect(stub).to.have.been.calledWith('/users/tfa/disable', { + otp: '351851', + }); + }); + }); });