passbolt-styleguide
Version:
Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.
89 lines (68 loc) • 4.53 kB
JavaScript
/**
* 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.0.0
*/
import ResourceTypesSettings from "./ResourceTypesSettings";
import resourceTypesFixture from "../../../react-extension/test/fixture/ResourceTypes/resourceTypes";
import SiteSettings from "./SiteSettings";
import siteSettingsFixture from "../../../react-extension/test/fixture/Settings/siteSettings";
describe("ResourceTypeSettings", () => {
it("areResourceTypesEnabled is false if site settings is undefined", () => {
const sut = new ResourceTypesSettings(undefined, []);
expect(sut.areResourceTypesEnabled()).toBe(false);
expect(sut.isResourceTypeEnabled('password-string')).toBe(false);
expect(sut.isResourceTypeEnabled('password-and-description')).toBe(false);
expect(sut.isResourceTypeEnabled('nope')).toBe(false);
expect(sut.isLegacyResourceTypeEnabled()).toBe(false);
expect(sut.isEncryptedDescriptionEnabled()).toBe(false);
expect(sut.mustEncryptDescription('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(false);
expect(sut.mustEncryptDescription('a28a04cd-6f53-518a-967c-9963bf9cec51')).toBe(false);
});
it("resource type settings works if site settings and fixtures are set", () => {
const siteSettings = new SiteSettings(siteSettingsFixture);
const sut = new ResourceTypesSettings(siteSettings, resourceTypesFixture);
expect(sut.areResourceTypesEnabled()).toBe(true);
expect(sut.isResourceTypeEnabled('password-string')).toBe(true);
expect(sut.isResourceTypeEnabled('password-and-description')).toBe(true);
expect(sut.isResourceTypeEnabled('nope')).toBe(false);
expect(sut.isLegacyResourceTypeEnabled()).toBe(true);
expect(sut.isEncryptedDescriptionEnabled()).toBe(true);
expect(sut.mustEncryptDescription('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(false);
expect(sut.mustEncryptDescription('a28a04cd-6f53-518a-967c-9963bf9cec51')).toBe(true);
expect(sut.findResourceTypeSlugById('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe('password-string');
expect(sut.findResourceTypeSlugById('nope')).toBe(undefined);
expect(sut.findResourceTypeIdBySlug('password-string')).toBe('669f8c64-242a-59fb-92fc-81f660975fd3');
expect(sut.findResourceTypeIdBySlug('nope')).toBe(undefined);
expect(sut.assertResourceTypeIdIsLegacy('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(true);
expect(sut.assertResourceTypeIdIsLegacy(undefined)).toBe(false);
expect(sut.assertResourceTypeIdHasEncryptedDescription('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(false);
expect(sut.assertResourceTypeIdHasEncryptedDescription(undefined)).toBe(false);
});
it("resource type settings works if site settings and some fixtures are set", () => {
const siteSettings = new SiteSettings(siteSettingsFixture);
const lessFixtures = [resourceTypesFixture[1]];
const sut = new ResourceTypesSettings(siteSettings, lessFixtures);
expect(sut.areResourceTypesEnabled()).toBe(true);
expect(sut.isResourceTypeEnabled('password-string')).toBe(false);
expect(sut.isResourceTypeEnabled('password-and-description')).toBe(true);
expect(sut.isResourceTypeEnabled('nope')).toBe(false);
expect(sut.isLegacyResourceTypeEnabled()).toBe(false);
expect(sut.isEncryptedDescriptionEnabled()).toBe(true);
expect(sut.mustEncryptDescription('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(true);
expect(sut.findResourceTypeSlugById('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(undefined);
expect(sut.findResourceTypeSlugById('a28a04cd-6f53-518a-967c-9963bf9cec51')).toBe('password-and-description');
expect(sut.findResourceTypeIdBySlug('password-and-description')).toBe('a28a04cd-6f53-518a-967c-9963bf9cec51');
expect(sut.findResourceTypeIdBySlug('password-string')).toBe(undefined);
expect(sut.assertResourceTypeIdIsLegacy('669f8c64-242a-59fb-92fc-81f660975fd3')).toBe(false);
expect(sut.assertResourceTypeIdHasEncryptedDescription('a28a04cd-6f53-518a-967c-9963bf9cec51')).toBe(true);
});
});