Skip to content

Commit c6104ba

Browse files
reidmitMing Xiao
authored andcommitted
Allow companyName and productName props in Siteframe to be a node [#162669087]
Signed-off-by: Ming Xiao <mxiao@pivotal.io>
1 parent 835c857 commit c6104ba

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

spec/pivotal-ui-react/siteframe/header_spec.js

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {FlexCol} from '../../../src/react/flex-grids';
33
import {Header} from '../../../src/react/siteframe/header';
44

55
describe('Header', () => {
6-
describe('without required props props', () => {
6+
describe('with a string companyName', () => {
77
beforeEach(() => {
88
ReactDOM.render(<Header {...{companyName: 'Pivotal'}}/>, root);
99
});
@@ -23,6 +23,26 @@ describe('Header', () => {
2323
});
2424
});
2525

26+
describe('with a node companyName', () => {
27+
beforeEach(() => {
28+
ReactDOM.render(<Header {...{companyName: <a href="#">Pivotal</a>}}/>, root);
29+
});
30+
31+
it('renders a grid with one column', () => {
32+
expect('.pui-siteframe-header').toHaveClass('grid');
33+
expect('.pui-siteframe-header > .col').toHaveLength(1);
34+
});
35+
36+
it('renders a fixed column with the company name', () => {
37+
expect('.pui-siteframe-header .col:eq(0)').toHaveClass('col-fixed');
38+
expect('.pui-siteframe-header .col:eq(0) h4 a').toContainText('Pivotal');
39+
});
40+
41+
it('does not render a span containing the product name', () => {
42+
expect('.pui-siteframe-header .col:eq(0) h4 span').not.toExist();
43+
});
44+
});
45+
2646
describe('with props', () => {
2747
let companyName, onClick, logoSrc, productName, cols, logo;
2848

@@ -31,7 +51,7 @@ describe('Header', () => {
3151
onClick = jasmine.createSpy('onClick');
3252
logoSrc = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
3353
logo = <a {...{onClick}}><img src={logoSrc}/></a>;
34-
productName = 'some-product-name';
54+
productName = <a href="#">some-product-name</a>;
3555
cols = [<FlexCol>first custom column</FlexCol>, <FlexCol>second custom column</FlexCol>];
3656

3757
ReactDOM.render(<Header {...{cols, companyName, logo, productName}}/>, root);
@@ -50,9 +70,7 @@ describe('Header', () => {
5070
it('renders a fixed second column with the company and product names', () => {
5171
expect('.pui-siteframe-header .col:eq(1)').toHaveClass('col-fixed');
5272
expect('.pui-siteframe-header .col:eq(1) h4').toContainText(companyName);
53-
expect('.pui-siteframe-header .col:eq(1) h4 .em-high').toHaveText(productName);
54-
expect('.pui-siteframe-header .col:eq(1) span').toHaveClass('em-high');
55-
expect('.pui-siteframe-header .col:eq(1) span').toHaveText(productName);
73+
expect('.pui-siteframe-header .col:eq(1) h4 span.em-high a').toHaveText('some-product-name');
5674
});
5775

5876
it('renders the first custom column', () => {

src/react/siteframe/header.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import {Grid, FlexCol} from '../flex-grids';
55
export class Header extends React.PureComponent {
66
static propTypes = {
77
cols: PropTypes.array,
8-
companyName: PropTypes.string.isRequired,
8+
companyName: PropTypes.node.isRequired,
99
logo: PropTypes.node,
10-
productName: PropTypes.string
10+
productName: PropTypes.node
1111
};
1212

1313
static defaultProps = {

0 commit comments

Comments
 (0)