UNPKG

terra-props-table

Version:

React component to render a table view for the props metadata of another react component.

77 lines (67 loc) 2.18 kB
const generatePropType = require('../../bin/generateMarkdown/generatePropType'); describe('generatePropType', () => { it('should return "node" for node', () => { expect(generatePropType({ name: 'node' })).toEqual('`node`'); }); it('should return "object" for object', () => { expect(generatePropType({ name: 'object' })).toEqual('`object`'); }); it('should return "string" for string', () => { expect(generatePropType({ name: 'string' })).toEqual('`string`'); }); it('should return "string" for enum', () => { const enumProp = { name: 'enum', value: [{ value: '\'default\'' }, { value: '\'link\'' }, { value: '\'primary\'' }, { value: '\'secondary\'' }], }; expect(generatePropType(enumProp)).toEqual('`string`'); }); it('should return "number" for enum', () => { const enumProp = { name: 'enum', value: [{ value: '2' }, { value: '4' }, { value: '6' }, { value: '3' }], }; expect(generatePropType(enumProp)).toEqual('`number`'); }); it('should return list of types for oneOfType', () => { const propType = { name: 'union', value: [{ name: 'string' }, { name: 'number' }], }; expect(generatePropType(propType)).toEqual('`string or number`'); }); it('should return type for arrayOf', () => { const propType = { name: 'arrayOf', value: { name: 'string' }, }; expect(generatePropType(propType)).toEqual('`array of strings`'); }); it('should return object format for arrayOf shapes', () => { const propType = { name: 'arrayOf', value: { name: 'shape', value: { row: 'string', icon: 'element' }, }, }; expect(generatePropType(propType)).toEqual('`array of objects structured like: {"row":"string","icon":"element"}`'); }); it('should return object format for shape', () => { const propType = { name: 'shape', value: { row: 'string', icon: 'element' }, }; expect(generatePropType(propType)).toEqual('`an object structured like: {"row":"string","icon":"element"}`'); }); });