@gravityforms/gulp-tasks
Version:
Configurable Gulp tasks for use in Gravity Forms projects.
71 lines (64 loc) • 2.22 kB
JavaScript
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',
} );
} );
} );