UNPKG

@gravityforms/gulp-tasks

Version:
71 lines (64 loc) 2.22 kB
import registerComponentDefaultExport from '../src/utils/component-map.js'; describe( 'registerComponentDefaultExport', () => { it( 'preserves a parent component with nested exports', () => { const componentMap = {}; const sharedParams = { componentMap, context: 'admin', externalPath: 'components.admin.react.elements', }; registerComponentDefaultExport( { ...sharedParams, defaultExport: 'BrandedButton', defaultExportName: 'ReactBrandedButton', importPath: 'react/admin/elements/Button/', } ); registerComponentDefaultExport( { ...sharedParams, defaultExport: 'Button', defaultExportName: 'ReactButton', importPath: 'react/admin/elements/', } ); registerComponentDefaultExport( { ...sharedParams, defaultExport: 'MultiOptionButton', defaultExportName: 'ReactMultiOptionButton', importPath: 'react/admin/elements/Button/', } ); expect( componentMap ).toEqual( { 'components.admin.react.elements.Button': 'ReactButton', 'components.admin.react.elements.Button.BrandedButton': 'ReactBrandedButton', 'components.admin.react.elements.Button.MultiOptionButton': 'ReactMultiOptionButton', } ); expect( Object.keys( componentMap ) ).toEqual( [ 'components.admin.react.elements.Button', 'components.admin.react.elements.Button.BrandedButton', 'components.admin.react.elements.Button.MultiOptionButton', ] ); } ); it( 'preserves a namespace when no parent component exists', () => { const componentMap = {}; const sharedParams = { componentMap, context: 'admin', externalPath: 'components.admin.react.modules', }; registerComponentDefaultExport( { ...sharedParams, defaultExport: 'AddCard', defaultExportName: 'ReactAddCard', importPath: 'react/admin/modules/Cards/', } ); registerComponentDefaultExport( { ...sharedParams, defaultExport: 'MetricCard', defaultExportName: 'ReactMetricCard', importPath: 'react/admin/modules/Cards/', } ); expect( componentMap ).toEqual( { 'components.admin.react.modules.Cards': '{}', 'components.admin.react.modules.Cards.AddCard': 'ReactAddCard', 'components.admin.react.modules.Cards.MetricCard': 'ReactMetricCard', } ); } ); } );