@govuk-frederic/object-table
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -15,4 +15,2 @@ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
* ```jsx | ||
* import { objectHasValueForKeys, keysFromFields, rowsFromObject } from '@govuk-frederic/utils'; | ||
* | ||
* const fields = [ | ||
@@ -32,4 +30,2 @@ * { key: 'one', heading: 'One' }, | ||
* ```jsx | ||
* import { objectHasValueForKeys, keysFromFields, rowsFromObject } from '@govuk-frederic/utils'; | ||
* | ||
* const fields = [ | ||
@@ -49,4 +45,2 @@ * { key: 'one', heading: 'One' }, | ||
* ```jsx | ||
* import { objectHasValueForKeys, keysFromFields, rowsFromObject } from '@govuk-frederic/utils'; | ||
* | ||
* const fields = [ | ||
@@ -65,10 +59,6 @@ * { key: 'one', heading: 'One' }, | ||
var title = _ref.title, | ||
_ref$fields = _ref.fields, | ||
fields = _ref$fields === void 0 ? [] : _ref$fields, | ||
_ref$object = _ref.object, | ||
object = _ref$object === void 0 ? {} : _ref$object, | ||
_ref$hideWithNoValues = _ref.hideWithNoValues, | ||
hideWithNoValues = _ref$hideWithNoValues === void 0 ? false : _ref$hideWithNoValues, | ||
_ref$skipEmptyValues = _ref.skipEmptyValues, | ||
skipEmptyValues = _ref$skipEmptyValues === void 0 ? true : _ref$skipEmptyValues, | ||
fields = _ref.fields, | ||
object = _ref.object, | ||
hideWithNoValues = _ref.hideWithNoValues, | ||
skipEmptyValues = _ref.skipEmptyValues, | ||
defaultTransform = _ref.defaultTransform, | ||
@@ -81,3 +71,3 @@ props = _objectWithoutProperties(_ref, ["title", "fields", "object", "hideWithNoValues", "skipEmptyValues", "defaultTransform"]); | ||
if (rows.rows.length) { | ||
return React.createElement(Fragment, null, title ? title : null, React.createElement(Table, _extends({ | ||
return React.createElement(Fragment, null, title, React.createElement(Table, _extends({ | ||
rows: rows.rows, | ||
@@ -94,16 +84,10 @@ names: rows.names, | ||
ObjectTable.propTypes = process.env.NODE_ENV !== "production" ? { | ||
fields: PropTypes.arrayOf(PropTypes.shape({ | ||
key: PropTypes.string.isRequired, | ||
heading: PropTypes.string.isRequired, | ||
transform: PropTypes.func | ||
})), | ||
object: PropTypes.object, | ||
hideWithNoValues: PropTypes.bool, | ||
skipEmptyValues: PropTypes.bool, | ||
skipMissingKeys: PropTypes.bool, | ||
defaultTransform: PropTypes.func, | ||
title: PropTypes.node | ||
} : {}; | ||
ObjectTable.defaultProps = { | ||
fields: [], | ||
object: {}, | ||
hideWithNoValues: false, | ||
skipEmptyValues: false, | ||
title: null | ||
}; | ||
export default ObjectTable; | ||
//# sourceMappingURL=index.js.map |
166
es/test.js
import React from 'react'; | ||
import { mount } from 'enzyme'; | ||
import Component from '.'; | ||
import { mount, shallow } from 'enzyme'; | ||
import ObjectTable from '.'; | ||
var fields = [{ | ||
key: 'one', | ||
heading: 'One' | ||
}, { | ||
key: 'two', | ||
heading: 'Two', | ||
transform: function transform() { | ||
return 'two'; | ||
} | ||
}]; | ||
var object = { | ||
one: 'test', | ||
two: 'test' | ||
}; | ||
describe('ObjectTable', function () { | ||
var fields = [{ | ||
key: 'one', | ||
heading: 'One' | ||
}, { | ||
key: 'two', | ||
heading: 'Two', | ||
transform: function transform() { | ||
return 'two'; | ||
} | ||
}]; | ||
var object = { | ||
one: 'test', | ||
two: 'test' | ||
}; | ||
var title = 'Heading'; | ||
var wrapper; | ||
it('renders with defaults', function () { | ||
wrapper = mount(React.createElement(Component, null)); | ||
it('renders without crashing', function () { | ||
var wrapper = shallow(React.createElement(ObjectTable, null)); | ||
expect(wrapper.exists()).toBe(true); | ||
}); | ||
it('renders a table of data based on params', function () { | ||
wrapper = mount(React.createElement(Component, { | ||
fields: fields, | ||
object: object | ||
})); | ||
var table = wrapper.find('Table'); | ||
var rows = table.prop('rows'); | ||
expect(rows).toEqual([['One', 'test'], ['Two', 'two']]); | ||
describe('renders table data', function () { | ||
it('renders expected table data cells', function () { | ||
var wrapper = mount(React.createElement(ObjectTable, { | ||
fields: fields, | ||
object: object | ||
})); | ||
expect(wrapper.find('Table').prop('rows')).toEqual([['One', 'test'], ['Two', 'two']]); | ||
}); | ||
it('omits rows in table for null values', function () { | ||
var fieldsWithTransform = [{ | ||
key: 'one', | ||
heading: 'one' | ||
}, { | ||
key: 'two', | ||
heading: 'two', | ||
transform: function transform() { | ||
return null; | ||
} | ||
}, { | ||
key: 'three', | ||
heading: 'three' | ||
}]; | ||
var objectWithNull = { | ||
one: 'test', | ||
two: 'test', | ||
three: null | ||
}; | ||
var wrapper = mount(React.createElement(ObjectTable, { | ||
fields: fieldsWithTransform, | ||
object: objectWithNull, | ||
skipEmptyValues: true | ||
})); | ||
expect(wrapper.find('tr').length).toBe(1); | ||
}); | ||
it('renders nothing when rows have no values and hideWithNoValues is true', function () { | ||
var objectWithNoValues = {}; | ||
var wrapper = mount(React.createElement(ObjectTable, { | ||
fields: fields, | ||
object: objectWithNoValues, | ||
hideWithNoValues: true | ||
})); | ||
expect(wrapper.html()).toBe(null); | ||
}); | ||
}); | ||
it('optionally renders a heading for a table', function () { | ||
fields = [{ | ||
key: 'one', | ||
heading: 'One' | ||
}, { | ||
key: 'two', | ||
heading: 'Two', | ||
transform: function transform() { | ||
return 'two'; | ||
} | ||
}]; | ||
object = { | ||
one: 'test', | ||
two: 'test' | ||
}; | ||
wrapper = mount(React.createElement(Component, { | ||
fields: fields, | ||
object: object, | ||
title: title | ||
})); | ||
expect(wrapper.contains('Heading')).toBe(true); | ||
describe('responds as expected to additional props', function () { | ||
it('optionally renders a heading for a table', function () { | ||
var wrapper = shallow(React.createElement(ObjectTable, { | ||
fields: fields, | ||
object: object, | ||
title: "Heading" | ||
})); | ||
expect(wrapper.contains('Heading')).toBe(true); | ||
}); | ||
}); | ||
it('omits rows in table for null values', function () { | ||
fields = [{ | ||
key: 'one', | ||
heading: 'one' | ||
}, { | ||
key: 'two', | ||
heading: 'two', | ||
transform: function transform() { | ||
return null; | ||
} | ||
}, { | ||
key: 'three', | ||
heading: 'three' | ||
}]; | ||
object = { | ||
one: 'test', | ||
two: 'test', | ||
three: null | ||
}; | ||
wrapper = mount(React.createElement(Component, { | ||
it('matches snapshot', function () { | ||
var wrapper = mount(React.createElement(ObjectTable, { | ||
fields: fields, | ||
object: object | ||
})); | ||
var rows = wrapper.find('tr'); | ||
expect(rows.length).toBe(1); | ||
expect(wrapper).toMatchSnapshot(); | ||
}); | ||
it('renders nothing when rows have no values and hideWithNoValues is true', function () { | ||
fields = [{ | ||
key: 'one', | ||
heading: 'one' | ||
}, { | ||
key: 'two', | ||
heading: 'two', | ||
transform: function transform() { | ||
return null; | ||
} | ||
}, { | ||
key: 'three', | ||
heading: 'three' | ||
}]; | ||
object = {}; | ||
wrapper = mount(React.createElement(Component, { | ||
fields: fields, | ||
object: object, | ||
hideWithNoValues: true | ||
})); | ||
expect(wrapper.html()).toBe(null); | ||
}); | ||
}); | ||
//# sourceMappingURL=test.js.map |
@@ -28,4 +28,2 @@ "use strict"; | ||
* ```jsx | ||
* import { objectHasValueForKeys, keysFromFields, rowsFromObject } from '@govuk-frederic/utils'; | ||
* | ||
* const fields = [ | ||
@@ -45,4 +43,2 @@ * { key: 'one', heading: 'One' }, | ||
* ```jsx | ||
* import { objectHasValueForKeys, keysFromFields, rowsFromObject } from '@govuk-frederic/utils'; | ||
* | ||
* const fields = [ | ||
@@ -62,4 +58,2 @@ * { key: 'one', heading: 'One' }, | ||
* ```jsx | ||
* import { objectHasValueForKeys, keysFromFields, rowsFromObject } from '@govuk-frederic/utils'; | ||
* | ||
* const fields = [ | ||
@@ -77,10 +71,6 @@ * { key: 'one', heading: 'One' }, | ||
var title = _ref.title, | ||
_ref$fields = _ref.fields, | ||
fields = _ref$fields === void 0 ? [] : _ref$fields, | ||
_ref$object = _ref.object, | ||
object = _ref$object === void 0 ? {} : _ref$object, | ||
_ref$hideWithNoValues = _ref.hideWithNoValues, | ||
hideWithNoValues = _ref$hideWithNoValues === void 0 ? false : _ref$hideWithNoValues, | ||
_ref$skipEmptyValues = _ref.skipEmptyValues, | ||
skipEmptyValues = _ref$skipEmptyValues === void 0 ? true : _ref$skipEmptyValues, | ||
fields = _ref.fields, | ||
object = _ref.object, | ||
hideWithNoValues = _ref.hideWithNoValues, | ||
skipEmptyValues = _ref.skipEmptyValues, | ||
defaultTransform = _ref.defaultTransform, | ||
@@ -93,3 +83,3 @@ props = _objectWithoutProperties(_ref, ["title", "fields", "object", "hideWithNoValues", "skipEmptyValues", "defaultTransform"]); | ||
if (rows.rows.length) { | ||
return _react.default.createElement(_react.Fragment, null, title ? title : null, _react.default.createElement(_govukFrederic.Table, _extends({ | ||
return _react.default.createElement(_react.Fragment, null, title, _react.default.createElement(_govukFrederic.Table, _extends({ | ||
rows: rows.rows, | ||
@@ -106,15 +96,9 @@ names: rows.names, | ||
ObjectTable.propTypes = process.env.NODE_ENV !== "production" ? { | ||
fields: _propTypes.default.arrayOf(_propTypes.default.shape({ | ||
key: _propTypes.default.string.isRequired, | ||
heading: _propTypes.default.string.isRequired, | ||
transform: _propTypes.default.func | ||
})), | ||
object: _propTypes.default.object, | ||
hideWithNoValues: _propTypes.default.bool, | ||
skipEmptyValues: _propTypes.default.bool, | ||
skipMissingKeys: _propTypes.default.bool, | ||
defaultTransform: _propTypes.default.func, | ||
title: _propTypes.default.node | ||
} : {}; | ||
ObjectTable.defaultProps = { | ||
fields: [], | ||
object: {}, | ||
hideWithNoValues: false, | ||
skipEmptyValues: false, | ||
title: null | ||
}; | ||
var _default = ObjectTable; | ||
@@ -121,0 +105,0 @@ exports.default = _default; |
162
lib/test.js
@@ -11,103 +11,83 @@ "use strict"; | ||
var fields = [{ | ||
key: 'one', | ||
heading: 'One' | ||
}, { | ||
key: 'two', | ||
heading: 'Two', | ||
transform: function transform() { | ||
return 'two'; | ||
} | ||
}]; | ||
var object = { | ||
one: 'test', | ||
two: 'test' | ||
}; | ||
describe('ObjectTable', function () { | ||
var fields = [{ | ||
key: 'one', | ||
heading: 'One' | ||
}, { | ||
key: 'two', | ||
heading: 'Two', | ||
transform: function transform() { | ||
return 'two'; | ||
} | ||
}]; | ||
var object = { | ||
one: 'test', | ||
two: 'test' | ||
}; | ||
var title = 'Heading'; | ||
var wrapper; | ||
it('renders with defaults', function () { | ||
wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, null)); | ||
it('renders without crashing', function () { | ||
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_.default, null)); | ||
expect(wrapper.exists()).toBe(true); | ||
}); | ||
it('renders a table of data based on params', function () { | ||
wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: object | ||
})); | ||
var table = wrapper.find('Table'); | ||
var rows = table.prop('rows'); | ||
expect(rows).toEqual([['One', 'test'], ['Two', 'two']]); | ||
describe('renders table data', function () { | ||
it('renders expected table data cells', function () { | ||
var wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: object | ||
})); | ||
expect(wrapper.find('Table').prop('rows')).toEqual([['One', 'test'], ['Two', 'two']]); | ||
}); | ||
it('omits rows in table for null values', function () { | ||
var fieldsWithTransform = [{ | ||
key: 'one', | ||
heading: 'one' | ||
}, { | ||
key: 'two', | ||
heading: 'two', | ||
transform: function transform() { | ||
return null; | ||
} | ||
}, { | ||
key: 'three', | ||
heading: 'three' | ||
}]; | ||
var objectWithNull = { | ||
one: 'test', | ||
two: 'test', | ||
three: null | ||
}; | ||
var wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fieldsWithTransform, | ||
object: objectWithNull, | ||
skipEmptyValues: true | ||
})); | ||
expect(wrapper.find('tr').length).toBe(1); | ||
}); | ||
it('renders nothing when rows have no values and hideWithNoValues is true', function () { | ||
var objectWithNoValues = {}; | ||
var wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: objectWithNoValues, | ||
hideWithNoValues: true | ||
})); | ||
expect(wrapper.html()).toBe(null); | ||
}); | ||
}); | ||
it('optionally renders a heading for a table', function () { | ||
fields = [{ | ||
key: 'one', | ||
heading: 'One' | ||
}, { | ||
key: 'two', | ||
heading: 'Two', | ||
transform: function transform() { | ||
return 'two'; | ||
} | ||
}]; | ||
object = { | ||
one: 'test', | ||
two: 'test' | ||
}; | ||
wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: object, | ||
title: title | ||
})); | ||
expect(wrapper.contains('Heading')).toBe(true); | ||
describe('responds as expected to additional props', function () { | ||
it('optionally renders a heading for a table', function () { | ||
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: object, | ||
title: "Heading" | ||
})); | ||
expect(wrapper.contains('Heading')).toBe(true); | ||
}); | ||
}); | ||
it('omits rows in table for null values', function () { | ||
fields = [{ | ||
key: 'one', | ||
heading: 'one' | ||
}, { | ||
key: 'two', | ||
heading: 'two', | ||
transform: function transform() { | ||
return null; | ||
} | ||
}, { | ||
key: 'three', | ||
heading: 'three' | ||
}]; | ||
object = { | ||
one: 'test', | ||
two: 'test', | ||
three: null | ||
}; | ||
wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
it('matches snapshot', function () { | ||
var wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: object | ||
})); | ||
var rows = wrapper.find('tr'); | ||
expect(rows.length).toBe(1); | ||
expect(wrapper).toMatchSnapshot(); | ||
}); | ||
it('renders nothing when rows have no values and hideWithNoValues is true', function () { | ||
fields = [{ | ||
key: 'one', | ||
heading: 'one' | ||
}, { | ||
key: 'two', | ||
heading: 'two', | ||
transform: function transform() { | ||
return null; | ||
} | ||
}, { | ||
key: 'three', | ||
heading: 'three' | ||
}]; | ||
object = {}; | ||
wrapper = (0, _enzyme.mount)(_react.default.createElement(_.default, { | ||
fields: fields, | ||
object: object, | ||
hideWithNoValues: true | ||
})); | ||
expect(wrapper.html()).toBe(null); | ||
}); | ||
}); | ||
//# sourceMappingURL=test.js.map |
{ | ||
"name": "@govuk-frederic/object-table", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"dependencies": { | ||
"@govuk-frederic/table": "^0.0.5", | ||
"@govuk-frederic/utils": "^0.0.4" | ||
"@govuk-frederic/table": "^0.0.6", | ||
"@govuk-frederic/utils": "^0.0.6" | ||
}, | ||
@@ -8,0 +8,0 @@ "devDependencies": { |
@@ -59,6 +59,5 @@ ObjectTable | ||
`object` | | ```{}``` | object | | ||
`skipEmptyValues` | | ```true``` | bool | | ||
`skipMissingKeys` | | `````` | bool | | ||
`title` | | `````` | node | | ||
`skipEmptyValues` | | ```false``` | bool | | ||
`title` | | ```null``` | node | | ||
import React from 'react'; | ||
import { mount } from 'enzyme'; | ||
import { mount, shallow } from 'enzyme'; | ||
import Component from '.'; | ||
import ObjectTable from '.'; | ||
const fields = [ | ||
{ key: 'one', heading: 'One' }, | ||
{ key: 'two', heading: 'Two', transform: () => 'two' }, | ||
]; | ||
const object = { one: 'test', two: 'test' }; | ||
describe('ObjectTable', () => { | ||
let fields = [ | ||
{ key: 'one', heading: 'One' }, | ||
{ key: 'two', heading: 'Two', transform: () => 'two' }, | ||
]; | ||
let object = { one: 'test', two: 'test' }; | ||
const title = 'Heading'; | ||
let wrapper; | ||
it('renders with defaults', () => { | ||
wrapper = mount(<Component />); | ||
it('renders without crashing', () => { | ||
const wrapper = shallow(<ObjectTable />); | ||
expect(wrapper.exists()).toBe(true); | ||
}); | ||
describe('renders table data', () => { | ||
it('renders expected table data cells', () => { | ||
const wrapper = mount(<ObjectTable fields={fields} object={object} />); | ||
expect(wrapper.find('Table').prop('rows')).toEqual([['One', 'test'], ['Two', 'two']]); | ||
}); | ||
it('renders a table of data based on params', () => { | ||
wrapper = mount(<Component fields={fields} object={object} />); | ||
const table = wrapper.find('Table'); | ||
const rows = table.prop('rows'); | ||
it('omits rows in table for null values', () => { | ||
const fieldsWithTransform = [ | ||
{ key: 'one', heading: 'one' }, | ||
{ key: 'two', heading: 'two', transform: () => null }, | ||
{ key: 'three', heading: 'three'}, | ||
]; | ||
const objectWithNull = { one: 'test', two: 'test', three: null }; | ||
const wrapper = mount(<ObjectTable fields={fieldsWithTransform} object={objectWithNull} skipEmptyValues />); | ||
expect(wrapper.find('tr').length).toBe(1); | ||
}); | ||
expect(rows).toEqual([['One', 'test'], ['Two', 'two']]); | ||
it('renders nothing when rows have no values and hideWithNoValues is true', () => { | ||
const objectWithNoValues = {}; | ||
const wrapper = mount(<ObjectTable fields={fields} object={objectWithNoValues} hideWithNoValues />); | ||
expect(wrapper.html()).toBe(null); | ||
}); | ||
}); | ||
it('optionally renders a heading for a table', () => { | ||
fields = [ | ||
{ key: 'one', heading: 'One' }, | ||
{ key: 'two', heading: 'Two', transform: () => 'two' }, | ||
]; | ||
object = { one: 'test', two: 'test' }; | ||
wrapper = mount(<Component fields={fields} object={object} title={title} />); | ||
expect(wrapper.contains('Heading')).toBe(true); | ||
describe('responds as expected to additional props', () => { | ||
it('optionally renders a heading for a table', () => { | ||
const wrapper = shallow(<ObjectTable fields={fields} object={object} title="Heading" />); | ||
expect(wrapper.contains('Heading')).toBe(true); | ||
}); | ||
}); | ||
it('omits rows in table for null values', () => { | ||
fields = [ | ||
{ key: 'one', heading: 'one' }, | ||
{ key: 'two', heading: 'two', transform: () => null }, | ||
{ key: 'three', heading: 'three'}, | ||
]; | ||
object = { one: 'test', two: 'test', three: null }; | ||
wrapper = mount(<Component fields={fields} object={object} skipEmptyValues />); | ||
const rows = wrapper.find('tr'); | ||
expect(rows.length).toBe(1); | ||
it('matches snapshot', () => { | ||
const wrapper = mount(<ObjectTable fields={fields} object={object} />); | ||
expect(wrapper).toMatchSnapshot(); | ||
}); | ||
it('renders nothing when rows have no values and hideWithNoValues is true', () => { | ||
fields = [ | ||
{ key: 'one', heading: 'one' }, | ||
{ key: 'two', heading: 'two', transform: () => null }, | ||
{ key: 'three', heading: 'three'}, | ||
]; | ||
object = {}; | ||
wrapper = mount(<Component fields={fields} object={object} hideWithNoValues />); | ||
expect(wrapper.html()).toBe(null); | ||
}); | ||
}); | ||
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
73940
1
18
1
1180
63
1
+ Added@govuk-frederic/table@0.0.6(transitive)
+ Added@govuk-frederic/utils@0.0.6(transitive)
- Removed@govuk-frederic/table@0.0.5(transitive)
- Removed@govuk-frederic/utils@0.0.4(transitive)
Updated@govuk-frederic/table@^0.0.6
Updated@govuk-frederic/utils@^0.0.6