UNPKG

passbolt-styleguide

Version:

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

112 lines (86 loc) 4.55 kB
/** * Passbolt ~ Open source password manager for teams * Copyright (c) 2022 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) 2022 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.8.0 */ import { defaultLocale, defaultProps, } from "../../../components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.data"; import { AdminInternationalizationContextProvider } from "./AdministrationInternationalizationContext"; import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse"; import { enableFetchMocks } from "jest-fetch-mock"; const frLocale = "fr-Fr"; describe("AdministrationInternationalizationContext", () => { let adminInternationalizationContext; // The AdministrationInternationalizationContext to test const props = defaultProps(); // The props to pass beforeEach(() => { jest.resetAllMocks(); adminInternationalizationContext = new AdminInternationalizationContextProvider(props); const setStateMock = (state) => (adminInternationalizationContext.state = Object.assign(adminInternationalizationContext.state, state)); jest.spyOn(adminInternationalizationContext, "setState").mockImplementation(setStateMock); enableFetchMocks(); }); describe("AdministrationInternationalizationContext::findLocale", () => { it("should get the current locale and store it in its state", async () => { await adminInternationalizationContext.findLocale(); expect.assertions(3); expect(adminInternationalizationContext.getLocale()).toEqual(defaultLocale); expect(adminInternationalizationContext.getCurrentLocale()).toEqual(defaultLocale); expect(adminInternationalizationContext.isProcessing()).toBeFalsy(); }); }); describe("AdministrationInternationalizationContext::hasLocaleChanges", () => { it("should return true if settings is different then current setting", () => { adminInternationalizationContext.setLocale(frLocale); expect.assertions(1); expect(adminInternationalizationContext.hasLocaleChanges()).toBeTruthy(); }); it("should return false if settings is different then current setting", async () => { await adminInternationalizationContext.findLocale(); adminInternationalizationContext.setLocale(frLocale); adminInternationalizationContext.setLocale(defaultLocale); expect.assertions(1); expect(adminInternationalizationContext.hasLocaleChanges()).toBeFalsy(); }); }); describe("AdministrationInternationalizationContext::clearContext", () => { it("should clear the context and set it by default", () => { adminInternationalizationContext.setLocale(frLocale); adminInternationalizationContext.clearContext(); expect.assertions(3); expect(adminInternationalizationContext.isProcessing()).toBeTruthy(); expect(adminInternationalizationContext.getCurrentLocale()).toBe(null); expect(adminInternationalizationContext.getLocale()).toBe(defaultLocale); }); }); describe("AdministrationInternationalizationContext::setLocale", () => { it("should update locale object and not the current object", async () => { await adminInternationalizationContext.findLocale(); adminInternationalizationContext.setLocale(frLocale); expect.assertions(2); expect(adminInternationalizationContext.getCurrentLocale()).toBe(defaultLocale); expect(adminInternationalizationContext.getLocale()).toBe(frLocale); }); }); describe("AdministrationInternationalizationContext::save", () => { it("should save locale and refresh texts", async () => { fetch.doMockOnceIf(/locale\/settings/, () => mockApiResponse({})); const findLocale = jest.spyOn(adminInternationalizationContext, "findLocale").mockImplementation(); await adminInternationalizationContext.save(); expect.assertions(3); expect(adminInternationalizationContext.isProcessing()).toBeTruthy(); expect(findLocale).toHaveBeenCalled(); expect(JSON.parse(fetch.mock.calls[0][1].body)).toEqual({ value: defaultLocale }); }); }); });