Skip to content

Commit f057809

Browse files
committed
Control for warnings in symbol/function tests
1 parent 71a8118 commit f057809

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

packages/react-dom/src/__tests__/ReactDOMInput-test.js

+38-6
Original file line numberDiff line numberDiff line change
@@ -1588,27 +1588,43 @@ describe('ReactDOMInput', () => {
15881588

15891589
describe('When given a Symbol value', function() {
15901590
it('does not allow initial assignment of Symbols to value', function() {
1591+
spyOnDev(console, 'error');
15911592
var container = document.createElement('div');
1592-
ReactDOM.render(<input value={Symbol('foobar')} />, container);
1593+
ReactDOM.render(<input value={Symbol('foobar')} readOnly />, container);
15931594
var node = container.firstChild;
15941595

15951596
expect(node.value).toBe('');
15961597
expect(node.getAttribute('value')).toBe('');
1598+
1599+
if (__DEV__) {
1600+
expect(console.error.calls.count()).toBe(1);
1601+
expect(console.error.calls.argsFor(0)[0]).toContain(
1602+
'Invalid value for prop `value`',
1603+
);
1604+
}
15971605
});
15981606

15991607
it('does not update the value to a Symbol', function() {
1608+
spyOnDev(console, 'error');
16001609
var container = document.createElement('div');
1601-
ReactDOM.render(<input value={''} />, container);
1602-
ReactDOM.render(<input value={Symbol('foobar')} />, container);
1610+
ReactDOM.render(<input value={''} readOnly />, container);
1611+
ReactDOM.render(<input value={Symbol('foobar')} readOnly />, container);
16031612
var node = container.firstChild;
16041613

16051614
expect(node.value).toBe('');
16061615
expect(node.getAttribute('value')).toBe('');
1616+
1617+
if (__DEV__) {
1618+
expect(console.error.calls.count()).toBe(1);
1619+
expect(console.error.calls.argsFor(0)[0]).toContain(
1620+
'Invalid value for prop `value`',
1621+
);
1622+
}
16071623
});
16081624

16091625
it('does not allow initial assignment of Symbols to defaultValue', function() {
16101626
var container = document.createElement('div');
1611-
ReactDOM.render(<input value={Symbol('foobar')} />, container);
1627+
ReactDOM.render(<input defaultValue={Symbol('foobar')} />, container);
16121628
var node = container.firstChild;
16131629

16141630
expect(node.value).toBe('');
@@ -1628,27 +1644,43 @@ describe('ReactDOMInput', () => {
16281644

16291645
describe('When given a function value', function() {
16301646
it('does not allow initial assignment of functions to value', function() {
1647+
spyOnDev(console, 'error');
16311648
var container = document.createElement('div');
1632-
ReactDOM.render(<input value={() => {}} />, container);
1649+
ReactDOM.render(<input value={() => {}} readOnly />, container);
16331650
var node = container.firstChild;
16341651

16351652
expect(node.value).toBe('');
16361653
expect(node.getAttribute('value')).toBe('');
1654+
1655+
if (__DEV__) {
1656+
expect(console.error.calls.count()).toBe(1);
1657+
expect(console.error.calls.argsFor(0)[0]).toContain(
1658+
'Invalid value for prop `value`',
1659+
);
1660+
}
16371661
});
16381662

16391663
it('does not update the value to a function', function() {
1664+
spyOnDev(console, 'error');
16401665
var container = document.createElement('div');
16411666
ReactDOM.render(<input value={''} />, container);
16421667
ReactDOM.render(<input value={() => {}} />, container);
16431668
var node = container.firstChild;
16441669

16451670
expect(node.value).toBe('');
16461671
expect(node.getAttribute('value')).toBe('');
1672+
1673+
if (__DEV__) {
1674+
expect(console.error.calls.count()).toBe(1);
1675+
expect(console.error.calls.argsFor(0)[0]).toContain(
1676+
'Invalid value for prop `value`',
1677+
);
1678+
}
16471679
});
16481680

16491681
it('does not allow initial assignment of functions to defaultValue', function() {
16501682
var container = document.createElement('div');
1651-
ReactDOM.render(<input value={() => {}} />, container);
1683+
ReactDOM.render(<input defaultValue={() => {}} readOnly />, container);
16521684
var node = container.firstChild;
16531685

16541686
expect(node.value).toBe('');

0 commit comments

Comments
 (0)