Skip to content

Commit

Permalink
Merge pull request #14 from materialr/feature/extra-props
Browse files Browse the repository at this point in the history
feat: add extra props that are passed in
  • Loading branch information
hvolschenk committed May 18, 2018
2 parents bf63731 + 0c5c2a0 commit 812cb41
Show file tree
Hide file tree
Showing 20 changed files with 158 additions and 22 deletions.
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
"homepage": "https://github.com/materialr/card#readme",
"dependencies": {
"@material/card": "^0.35.0",
"@materialr/button": "^2.0.2",
"@materialr/icon-toggle": "^2.0.1",
"@materialr/button": "^2.1.0",
"@materialr/icon-toggle": "^2.1.0",
"classnames": "^2.2.5",
"prop-types": "^15.6.1",
"react": "^16.3.2"
Expand Down
2 changes: 2 additions & 0 deletions src/action-button.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ const ActionButton = ({
disabled,
onClick,
ripple,
...props
}) => (
<Button
className={getClassNames(className)}
disabled={disabled}
onClick={onClick}
ripple={ripple}
{...props}
>
{children}
</Button>
Expand Down
13 changes: 13 additions & 0 deletions src/action-button.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,16 @@ test('ActionButton > Renders all props', () => {
expect(actualOnClick).toEqual(expectedOnClick);
expect(actualRipple).toEqual(expectedRipple);
});

test('ActionButton > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<ActionButton data-qa={DATA_QA}>{CHILDREN}</ActionButton>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
4 changes: 2 additions & 2 deletions src/action-buttons.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ const getClassNames = className => classnames({
[className]: !!className,
});

const ActionButtons = ({ children, className }) => (
<div className={getClassNames(className)}>
const ActionButtons = ({ children, className, ...props }) => (
<div className={getClassNames(className)} {...props}>
{children}
</div>
);
Expand Down
13 changes: 13 additions & 0 deletions src/action-buttons.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,16 @@ test('ActionButtons > Renders children', () => {

expect(actual).toEqual(expected);
});

test('ActionButtons > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<ActionButtons data-qa={DATA_QA}>{CHILDREN}</ActionButtons>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toEqual(expected);
});
2 changes: 2 additions & 0 deletions src/action-icon-toggle.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const ActionIconToggle = ({
labelOff,
labelOn,
onChange,
...props
}) => (
<IconToggle
className={getClassNames(className)}
Expand All @@ -27,6 +28,7 @@ const ActionIconToggle = ({
labelOff={labelOff}
labelOn={labelOn}
onChange={onChange}
{...props}
/>
);

Expand Down
20 changes: 20 additions & 0 deletions src/action-icon-toggle.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,23 @@ test('ActionIconToggle > Renders all props', () => {
expect(actualIconOff).toEqual(expectedIconOff);
expect(actualIconOn).toEqual(expectedIconOn);
});

test('ActionIconToggle > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<ActionIconToggle
data-qa={DATA_QA}
iconOff={ICON_OFF}
iconOn={ICON_ON}
labelOff={LABEL_OFF}
labelOn={LABEL_ON}
onChange={ON_CHANGE}
/>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
12 changes: 10 additions & 2 deletions src/action-icon.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,16 @@ const getClassNames = className => classnames({
[className]: !!className,
});

const ActionIcon = ({ className, icon, title }) => (
<i className={getClassNames(className)} role="button" tabIndex="0" title={title}>{icon}</i>
const ActionIcon = ({ className, icon, title, ...props }) => (
<i
className={getClassNames(className)}
role="button"
tabIndex="0"
title={title}
{...props}
>
{icon}
</i>
);

ActionIcon.propTypes = {
Expand Down
13 changes: 13 additions & 0 deletions src/action-icon.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,16 @@ test('ActionIcon > Renders children', () => {
expect(actualIcon).toEqual(expectedIcon);
expect(actualTitle).toEqual(expectedTitle);
});

test('ActionIcon > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<ActionIcon data-qa={DATA_QA} icon={ICON} />,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
4 changes: 2 additions & 2 deletions src/action-icons.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ const getClassNames = className => classnames({
[className]: !!className,
});

const ActionIcons = ({ children, className }) => (
<div className={getClassNames(className)}>
const ActionIcons = ({ children, className, ...props }) => (
<div className={getClassNames(className)} {...props}>
{children}
</div>
);
Expand Down
13 changes: 13 additions & 0 deletions src/action-icons.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,16 @@ test('ActionIcons > Renders children', () => {

expect(actual).toEqual(expected);
});

test('ActionIcons > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<ActionIcons data-qa={DATA_QA}>{CHILDREN}</ActionIcons>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
4 changes: 2 additions & 2 deletions src/actions.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ const getClassNames = (className, fullBleed) => classnames({
[className]: !!className,
});

const Actions = ({ children, className, fullBleed }) => (
<div className={getClassNames(className, fullBleed)}>{children}</div>
const Actions = ({ children, className, fullBleed, ...props }) => (
<div className={getClassNames(className, fullBleed)} {...props}>{children}</div>
);

Actions.propTypes = {
Expand Down
13 changes: 13 additions & 0 deletions src/actions.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,16 @@ test('Actions > Renders children', () => {

expect(actual).toEqual(expected);
});

test('Actions > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<Actions data-qa={DATA_QA}>{CHILDREN}</Actions>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
4 changes: 2 additions & 2 deletions src/card.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ const getClassName = (className, outlined) => classnames({
[className]: !!className,
});

const Card = ({ children, className, outlined }) => (
<div className={getClassName(className, outlined)}>{children}</div>
const Card = ({ children, className, outlined, ...props }) => (
<div className={getClassName(className, outlined)} {...props}>{children}</div>
);

Card.propTypes = {
Expand Down
13 changes: 13 additions & 0 deletions src/card.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,16 @@ test('Card > Renders children', () => {

expect(actual).toEqual(expected);
});

test('Card > Renders default className', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<Card data-qa={DATA_QA}>{CHILDREN}</Card>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
4 changes: 2 additions & 2 deletions src/media-content.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ const getClassNames = className => classnames({
[className]: !!className,
});

const MediaContent = ({ children, className }) => (
<div className={getClassNames(className)}>{children}</div>
const MediaContent = ({ children, className, ...props }) => (
<div className={getClassNames(className)} {...props}>{children}</div>
);

MediaContent.propTypes = {
Expand Down
13 changes: 13 additions & 0 deletions src/media-content.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,16 @@ test('MediaContent > Renders children', () => {

expect(actual).toEqual(expected);
});

test('MediaContent > Adds extra properties that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<MediaContent data-qa={DATA_QA}>{CHILDREN}</MediaContent>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});
4 changes: 2 additions & 2 deletions src/media.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ const getClassNames = (aspectRatio, className) => classnames({
[className]: !!className,
});

const Media = ({ aspectRatio, children, className }) => (
<div className={getClassNames(aspectRatio, className)}>{children}</div>
const Media = ({ aspectRatio, children, className, ...props }) => (
<div className={getClassNames(aspectRatio, className)} {...props}>{children}</div>
);

Media.propTypes = {
Expand Down
13 changes: 13 additions & 0 deletions src/media.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,16 @@ test('Media > Renders children', () => {

expect(actual).toEqual(expected);
});

test('Media > Adds extra props that are passed in', () => {
const DATA_QA = 'DATA_QA';
const wrapper = shallow(
<Media data-qa={DATA_QA}>{CHILDREN}</Media>,
{ disableLifecycleMethods: true },
);
const expected = DATA_QA;

const actual = wrapper.props()['data-qa'];

expect(actual).toBe(expected);
});

0 comments on commit 812cb41

Please sign in to comment.