@@ -1094,18 +1094,12 @@ describe('ReactDOMComponent', () => {
1094
1094
1095
1095
it ( 'should not incur unnecessary DOM mutations for boolean properties' , ( ) => {
1096
1096
const container = document . createElement ( 'div' ) ;
1097
- function onChange ( ) {
1098
- // noop
1099
- }
1100
- ReactDOM . render (
1101
- < input type = "checkbox" onChange = { onChange } checked = { true } /> ,
1102
- container ,
1103
- ) ;
1097
+ ReactDOM . render ( < audio muted = { true } /> , container ) ;
1104
1098
1105
1099
const node = container . firstChild ;
1106
1100
let nodeValue = true ;
1107
1101
const nodeValueSetter = jest . fn ( ) ;
1108
- Object . defineProperty ( node , 'checked ' , {
1102
+ Object . defineProperty ( node , 'muted ' , {
1109
1103
get : function ( ) {
1110
1104
return nodeValue ;
1111
1105
} ,
@@ -1114,48 +1108,11 @@ describe('ReactDOMComponent', () => {
1114
1108
} ) ,
1115
1109
} ) ;
1116
1110
1117
- ReactDOM . render (
1118
- < input
1119
- type = "checkbox"
1120
- onChange = { onChange }
1121
- checked = { true }
1122
- data-unrelated = { true }
1123
- /> ,
1124
- container ,
1125
- ) ;
1126
- expect ( nodeValueSetter ) . toHaveBeenCalledTimes ( 0 ) ;
1127
-
1128
- expect ( ( ) => {
1129
- ReactDOM . render (
1130
- < input type = "checkbox" onChange = { onChange } /> ,
1131
- container ,
1132
- ) ;
1133
- } ) . toErrorDev (
1134
- 'A component is changing a controlled input to be uncontrolled. This is likely caused by ' +
1135
- 'the value changing from a defined to undefined, which should not happen. Decide between ' +
1136
- 'using a controlled or uncontrolled input element for the lifetime of the component.' ,
1137
- ) ;
1138
- // This leaves the current checked value in place, just like text inputs.
1111
+ ReactDOM . render ( < audio muted = { true } data-unrelated = "yes" /> , container ) ;
1139
1112
expect ( nodeValueSetter ) . toHaveBeenCalledTimes ( 0 ) ;
1140
1113
1141
- expect ( ( ) => {
1142
- ReactDOM . render (
1143
- < input type = "checkbox" onChange = { onChange } checked = { false } /> ,
1144
- container ,
1145
- ) ;
1146
- } ) . toErrorDev (
1147
- ' A component is changing an uncontrolled input to be controlled. This is likely caused by ' +
1148
- 'the value changing from undefined to a defined value, which should not happen. Decide between ' +
1149
- 'using a controlled or uncontrolled input element for the lifetime of the component.' ,
1150
- ) ;
1151
-
1114
+ ReactDOM . render ( < audio muted = { false } data-unrelated = "ok" /> , container ) ;
1152
1115
expect ( nodeValueSetter ) . toHaveBeenCalledTimes ( 1 ) ;
1153
-
1154
- ReactDOM . render (
1155
- < input type = "checkbox" onChange = { onChange } checked = { true } /> ,
1156
- container ,
1157
- ) ;
1158
- expect ( nodeValueSetter ) . toHaveBeenCalledTimes ( 2 ) ;
1159
1116
} ) ;
1160
1117
1161
1118
it ( 'should ignore attribute list for elements with the "is" attribute' , ( ) => {
0 commit comments