UNPKG

@plone/volto

Version:
175 lines (164 loc) 4.67 kB
/* * This is the mocked config registry loader for tests. * It uses some of the default (real) configuration, * (mainly) DraftJS one, to not differ too much from reality * Ideally, we should mock this ones as well at some point. * Views, Widgets and Blocks are mocked already, to keep * snapshot consistency and readability. */ import React from 'react'; import config from '@plone/volto/registry'; import { loadables } from '@plone/volto/config/Loadables'; import { nonContentRoutes } from '@plone/volto/config/NonContentRoutes'; import { nonContentRoutesPublic } from '@plone/volto/config/NonContentRoutesPublic'; import { contentIcons } from '@plone/volto/config/ContentIcons'; import { styleClassNameConverters, styleClassNameExtenders, } from '@plone/volto/config/Style'; import { controlPanelsIcons, filterControlPanels, filterControlPanelsSchema, unwantedControlPanelsFields, } from '@plone/volto/config/ControlPanels'; import ListingBlockSchema from '@plone/volto/components/manage/Blocks/Listing/schema'; import { registerValidators } from '@plone/volto/config/validation'; config.set('settings', { apiPath: 'http://localhost:8080/Plone', publicURL: 'http://localhost:3000', defaultLanguage: 'en', supportedLanguages: ['en'], defaultPageSize: 25, showTags: true, showRelatedItems: true, isMultilingual: false, nonContentRoutes, nonContentRoutesPublic, contentIcons: contentIcons, loadables, lazyBundles: { cms: [ 'prettierStandalone', 'prettierParserHtml', 'prismCore', 'toastify', 'reactSelect', 'reactSortableHOC', // 'diffLib', ], }, controlPanelsIcons, filterControlPanels, filterControlPanelsSchema, unwantedControlPanelsFields, apiExpanders: [], downloadableObjects: ['File'], viewableInBrowserObjects: [], styleClassNameConverters, styleClassNameExtenders, blockSettingsTabFieldsetsInitialStateOpen: true, containerBlockTypes: [], }); config.set('blocks', { blocksConfig: { listing: { blockSchema: ListingBlockSchema, variations: [ { id: 'default', isDefault: true, title: 'Default', template: () => ( <div className="mocked-default-listing-template"></div> ), }, { id: 'imageGallery', title: 'Image gallery', template: () => <div className="mocked-image-listing-template"></div>, }, { id: 'summary', title: 'Summary', template: () => ( <div className="mocked-summary-listing-template"></div> ), }, ], }, }, requiredBlocks: [], groupBlocksOrder: [ { id: 'mostUsed', title: 'Most used' }, { id: 'text', title: 'Text' }, { id: 'media', title: 'Media' }, { id: 'common', title: 'Common' }, ], initialBlocks: {}, }); config.set('views', { layoutViews: {}, contentTypesViews: {}, defaultView: {}, errorViews: {}, }); function BaseWidget(name) { return (props) => ( <div id={`mocked-field-${props.id}`} className={`mocked-${name}-widget`}> {props.title || 'No title'} - {props.description || 'No description'} </div> ); } config.set('widgets', { id: { schema: BaseWidget('schema'), subjects: BaseWidget('subjects'), query: BaseWidget('query'), recurrence: BaseWidget('recurrence'), remoteUrl: BaseWidget('remoteurl'), }, widget: { richtext: BaseWidget('richtext'), textarea: BaseWidget('textarea'), datetime: BaseWidget('datetime'), date: BaseWidget('date'), password: BaseWidget('password'), file: BaseWidget('file'), align: BaseWidget('align'), url: BaseWidget('url'), email: BaseWidget('email'), object_browser: BaseWidget('object_browser'), }, vocabulary: {}, factory: {}, choices: BaseWidget('choices'), type: { boolean: BaseWidget('boolean'), array: BaseWidget('array'), object: BaseWidget('object'), datetime: BaseWidget('datetime'), date: BaseWidget('date'), password: BaseWidget('password'), number: BaseWidget('number'), integer: BaseWidget('integer'), }, default: BaseWidget('default'), }); config.set('components', { PreviewImage: { component: (props) => <img alt="PreviewImage component mock" {...props} />, }, Image: { // eslint-disable-next-line jsx-a11y/img-redundant-alt component: (props) => <img alt="Image component mock" {...props} />, }, }); config.set('utilities', {}); config.set('experimental', { addBlockButton: { enabled: false, }, }); config.set('slots', {}); registerValidators(config);