UNPKG

passbolt-styleguide

Version:

Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.

96 lines (84 loc) 3.98 kB
/** * Passbolt ~ Open source password manager for teams * Copyright (c) 2020 Passbolt SA (https://www.passbolt.com) * * Licensed under GNU Affero General Public License version 3 of the or any later version. * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) 2020 Passbolt SA (https://www.passbolt.com) * @license https://opensource.org/licenses/AGPL-3.0 AGPL License * @link https://www.passbolt.com Passbolt(tm) * @since 3.1.0 */ import { defaultProps } from "./UserSettingsContext.test.data"; import { UserSettingsContextProvider, UserSettingsContextState } from "./UserSettingsContext"; beforeEach(() => { jest.resetModules(); jest.clearAllMocks(); }); describe("UserSettings Context", () => { let userContext; // The userContext to text describe("As LU I should complete an authentication setup", () => { beforeEach(() => { userContext = new UserSettingsContextProvider(defaultProps()); const setStateMock = (state) => (userContext.state = Object.assign(userContext.state, state)); jest.spyOn(userContext, "setState").mockImplementation(setStateMock); const requestMock = jest.fn(() => new Promise((resolve) => resolve())); jest.spyOn(userContext.props.context.port, "request").mockImplementation(requestMock); }); it("As LU I should start with the state INITIAL_STATE", () => { expect(userContext.state.state).toBe(UserSettingsContextState.INITIAL_STATE); }); it("As LU I should start initially with the PASSPHRASE_INTRODUCTION state", async () => { userContext.onIntroductionPassphraseRequested(); expect(userContext.state.state).toBe(UserSettingsContextState.PASSPHRASE_INTRODUCTION); }); it("As LU I should confirm the passphrase", async () => { const passphrase = "passphrase"; userContext.onProvidePassphraseRequested(); expect(userContext.state.state).toBe(UserSettingsContextState.PASSPHRASE_TO_PROVIDE_REQUESTED); await userContext.onCheckProvidePassphraseRequested(passphrase); expect(userContext.props.context.port.request).toHaveBeenCalledWith( "passbolt.auth.verify-passphrase", passphrase, ); expect(userContext.state.state).toBe(UserSettingsContextState.PASSPHRASE_TO_PROVIDE_CHECKED); }); it("As LU I should update my passphrase", async () => { const oldPassphrase = "old passphrase"; const passphrase = "some passphrase"; await userContext.onCheckProvidePassphraseRequested(oldPassphrase); await userContext.onUpdatePassphraseRequested(passphrase); expect(userContext.props.context.port.request).toHaveBeenCalledWith( "passbolt.user.update-private-key", oldPassphrase, passphrase, ); expect(userContext.state.state).toBe(UserSettingsContextState.PASSPHRASE_UPDATED); }); it("As LU I should request to download the recovery kit", async () => { await userContext.onDownloadRecoveryKitRequested(); expect(userContext.props.context.port.request).toHaveBeenCalledWith("passbolt.keyring.download-my-private-key"); }); it("As LU I should update my security token", async () => { const securityTokenDto = { color: "#f44336", textcolor: "#ffffff", code: "ABC", }; await userContext.onUpdateSecurityTokenRequested(securityTokenDto); expect(userContext.props.context.port.request).toHaveBeenCalledWith( "passbolt.users.update-security-token", securityTokenDto, ); }); it("As LU I should update the language", async () => { const locale = "fr-FR"; await userContext.state.onUpdateLocaleUserRequested({ locale }); expect(userContext.props.context.port.request).toHaveBeenCalledWith("passbolt.locale.update-user-locale", { locale, }); }); }); });