UNPKG

passbolt-styleguide

Version:

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

161 lines (143 loc) 6.67 kB
import { MemoryRouter } from "react-router-dom"; import React from "react"; import MockPort from "../../../test/mock/MockPort"; import { defaultCustomFieldsProps, defaultProps, defaultTotpProps } from "./EditResource.test.data"; import AppContext from "../../../../shared/context/AppContext/AppContext"; import { ResourceWorkspaceContext } from "../../../contexts/ResourceWorkspaceContext"; import { ResourceTypesLocalStorageContext } from "../../../../shared/context/ResourceTypesLocalStorageContext/ResourceTypesLocalStorageContext"; import { MetadataTypesSettingsLocalStorageContext } from "../../../../shared/context/MetadataTypesSettingsLocalStorageContext/MetadataTypesSettingsLocalStorageContext"; import { ResourcePasswordGeneratorContext } from "../../../contexts/ResourcePasswordGeneratorContext"; import { TEST_RESOURCE_TYPE_PASSWORD_AND_DESCRIPTION, TEST_RESOURCE_TYPE_PASSWORD_DESCRIPTION_TOTP, TEST_RESOURCE_TYPE_PASSWORD_STRING, TEST_RESOURCE_TYPE_TOTP, TEST_RESOURCE_TYPE_V5_DEFAULT_TOTP, TEST_RESOURCE_TYPE_V5_PASSWORD_STRING, } from "../../../../shared/models/entity/resourceType/resourceTypeEntity.test.data"; import DialogContextProvider from "../../../contexts/DialogContext"; import { ActionFeedbackContext } from "../../../contexts/ActionFeedbackContext"; import ManageDialogs from "../../Common/Dialog/ManageDialogs/ManageDialogs"; import EditResource from "./EditResource"; import { defaultTotpDto } from "../../../../shared/models/entity/totp/totpDto.test.data"; import { defaultResourceDto } from "../../../../shared/models/entity/resource/resourceEntity.test.data"; export default { title: "Components/Resource/EditResource", component: EditResource, decorators: [ (Story, { args }) => ( <MemoryRouter initialEntries={["/app/passwords"]}> <div style={{ margin: "-1rem" }}> <AppContext.Provider value={args.context}> <DialogContextProvider> <ActionFeedbackContext.Provider value={args.actionFeedbackContext}> <MetadataTypesSettingsLocalStorageContext.Provider value={{ get: () => args.metadataTypeSettings, metadataTypeSettings: args.metadataTypeSettings }} > <ResourceTypesLocalStorageContext.Provider value={{ get: () => args.resourceTypes, resourceTypes: args.resourceTypes }} > <ResourceWorkspaceContext.Provider value={args.resourceWorkspaceContext}> <ResourcePasswordGeneratorContext.Provider value={args.resourcePasswordGeneratorContext}> <ManageDialogs /> <Story {...args} /> </ResourcePasswordGeneratorContext.Provider> </ResourceWorkspaceContext.Provider> </ResourceTypesLocalStorageContext.Provider> </MetadataTypesSettingsLocalStorageContext.Provider> </ActionFeedbackContext.Provider> </DialogContextProvider> </AppContext.Provider> </div> </MemoryRouter> ), ], }; const mockedDefaultPort = new MockPort(); mockedDefaultPort.addRequestListener("passbolt.secret.find-by-resource-id", () => ({ password: "secret-decrypted", description: "description", })); const mockedPortPasswordDescriptionTotp = new MockPort(); mockedPortPasswordDescriptionTotp.addRequestListener("passbolt.secret.find-by-resource-id", () => ({ password: "secret-decrypted", description: "description", totp: defaultTotpDto(), })); const mockedPortTotp = new MockPort(); mockedPortTotp.addRequestListener("passbolt.secret.find-by-resource-id", () => ({ totp: defaultTotpDto() })); const mockedPasswordStringPort = new MockPort(); mockedPasswordStringPort.addRequestListener("passbolt.secret.find-by-resource-id", () => ({ password: "secret-decrypted", })); const mockedPortCustomFields = new MockPort(); const customFieldsProps = defaultCustomFieldsProps(); mockedPortCustomFields.addRequestListener("passbolt.secret.find-by-resource-id", () => ({ custom_fields: [ { id: customFieldsProps.resource.metadata.custom_fields[0].id, type: "text", secret_value: "secret-0" }, ], })); const defaultV5Props = defaultProps(); defaultV5Props.context.port = mockedDefaultPort; export const Default = { args: defaultV5Props, }; const defaultV5DefaultTotpProps = defaultProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_V5_DEFAULT_TOTP }), }); defaultV5DefaultTotpProps.context.port = mockedPortPasswordDescriptionTotp; export const DefaultTotp = { args: defaultV5DefaultTotpProps, }; const defaultV5TotpProps = defaultTotpProps(); defaultV5TotpProps.context.port = mockedPortTotp; export const Totp = { args: defaultV5TotpProps, }; const defaultV5CustomFieldsProps = customFieldsProps; defaultV5CustomFieldsProps.context.port = mockedPortCustomFields; export const CustomFields = { args: defaultV5CustomFieldsProps, }; const defaultV5StringProps = defaultProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_V5_PASSWORD_STRING }), }); defaultV5StringProps.context.port = mockedPasswordStringPort; export const String = { args: defaultProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_V5_PASSWORD_STRING }) }), }; const defaultLegacyProps = defaultProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_PASSWORD_AND_DESCRIPTION }), }); defaultLegacyProps.context.port = mockedDefaultPort; export const DefaultLegacy = { args: defaultLegacyProps, }; const defaultV4DefaultTotpProps = defaultProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_PASSWORD_DESCRIPTION_TOTP }), }); defaultV4DefaultTotpProps.context.port = mockedPortPasswordDescriptionTotp; export const DefaultTotpLegacy = { args: defaultV4DefaultTotpProps, }; const legacyTotpProps = defaultTotpProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_TOTP }), }); legacyTotpProps.context.port = mockedPortTotp; export const TotpLegacy = { args: legacyTotpProps, }; const legacyStringProps = defaultProps({ resource: defaultResourceDto({ resource_type_id: TEST_RESOURCE_TYPE_PASSWORD_STRING }), }); legacyStringProps.context.port = mockedPasswordStringPort; export const StringLegacy = { args: legacyStringProps, }; const mockedLoadingPort = new MockPort(); mockedLoadingPort.addRequestListener("passbolt.secret.find-by-resource-id", () => new Promise((resolve) => resolve)); const loadingProps = defaultProps(); loadingProps.context.port = mockedLoadingPort; export const Loading = { args: loadingProps, };