@@ -148,6 +148,20 @@ describe('ReactDOMComponent', function() {
148
148
expect ( console . error . argsForCall . length ) . toBe ( 2 ) ;
149
149
} ) ;
150
150
151
+ it ( 'should warn for unknown prop' , function ( ) {
152
+ spyOn ( console , 'error' ) ;
153
+ var container = document . createElement ( 'div' ) ;
154
+ ReactDOM . render ( < div foo = "bar" /> , container ) ;
155
+ expect ( console . error . argsForCall . length ) . toBe ( 1 ) ;
156
+ expect ( console . error . argsForCall [ 0 ] [ 0 ] ) . toContain (
157
+ 'Warning: Unknown prop `foo` on <div> tag. Remove this prop from the element. ' +
158
+ 'For details, see https://fb.me/react-unknown-prop'
159
+ ) ;
160
+ expect ( console . error . argsForCall [ 0 ] [ 0 ] ) . toContain (
161
+ 'ReactDOMComponent-test.js'
162
+ ) ;
163
+ } ) ;
164
+
151
165
it ( 'should warn about styles with numeric string values for non-unitless properties' , function ( ) {
152
166
spyOn ( console , 'error' ) ;
153
167
@@ -1332,15 +1346,25 @@ describe('ReactDOMComponent', function() {
1332
1346
ReactDOMServer . renderToString ( < input type = "text" onclick = "1" /> ) ;
1333
1347
expect ( console . error . argsForCall . length ) . toBe ( 2 ) ;
1334
1348
expect (
1335
- console . error . argsForCall [ 0 ] [ 0 ] . replace ( / \( . + ? : \d + \) / g , '(**:*)' )
1336
- ) . toBe (
1337
- 'Warning: Unknown DOM property class. Did you mean className? (**:*) '
1349
+ console . error . argsForCall [ 0 ] [ 0 ]
1350
+ ) . toContain (
1351
+ 'Warning: Unknown DOM property class. Did you mean className?'
1338
1352
) ;
1339
1353
expect (
1340
- console . error . argsForCall [ 1 ] [ 0 ] . replace ( / \( .+ ?: \d + \) / g, '(**:*)' )
1341
- ) . toBe (
1354
+ console . error . argsForCall [ 0 ] [ 0 ]
1355
+ ) . toContain (
1356
+ 'ReactDOMComponent-test.js'
1357
+ ) ;
1358
+ expect (
1359
+ console . error . argsForCall [ 1 ] [ 0 ]
1360
+ ) . toContain (
1342
1361
'Warning: Unknown event handler property onclick. Did you mean ' +
1343
- '`onClick`? (**:*)'
1362
+ '`onClick`?'
1363
+ ) ;
1364
+ expect (
1365
+ console . error . argsForCall [ 1 ] [ 0 ]
1366
+ ) . toContain (
1367
+ 'ReactDOMComponent-test.js'
1344
1368
) ;
1345
1369
} ) ;
1346
1370
@@ -1354,9 +1378,14 @@ describe('ReactDOMComponent', function() {
1354
1378
ReactDOMServer . renderToString ( < div class = "paladin" /> , container ) ;
1355
1379
expect ( console . error . argsForCall . length ) . toBe ( 1 ) ;
1356
1380
expect (
1357
- console . error . argsForCall [ 0 ] [ 0 ] . replace ( / \( .+ ?: \d + \) / g, '(**:*)' )
1358
- ) . toBe (
1359
- 'Warning: Unknown DOM property class. Did you mean className? (**:*)'
1381
+ console . error . argsForCall [ 0 ] [ 0 ]
1382
+ ) . toContain (
1383
+ 'Warning: Unknown DOM property class. Did you mean className?'
1384
+ ) ;
1385
+ expect (
1386
+ console . error . argsForCall [ 0 ] [ 0 ]
1387
+ ) . toContain (
1388
+ 'ReactDOMComponent-test.js'
1360
1389
) ;
1361
1390
} ) ;
1362
1391
@@ -1375,10 +1404,12 @@ describe('ReactDOMComponent', function() {
1375
1404
1376
1405
expect ( console . error . argsForCall . length ) . toBe ( 2 ) ;
1377
1406
1378
- var matches = console . error . argsForCall [ 0 ] [ 0 ] . match ( / .* c l a s s N a m e .* \( .* : ( \d + ) \) / ) ;
1407
+ expect ( console . error . argsForCall [ 0 ] [ 0 ] ) . toContain ( 'className' ) ;
1408
+ var matches = console . error . argsForCall [ 0 ] [ 0 ] . match ( / .* \( .* : ( \d + ) \) .* / ) ;
1379
1409
var previousLine = matches [ 1 ] ;
1380
1410
1381
- matches = console . error . argsForCall [ 1 ] [ 0 ] . match ( / .* o n C l i c k .* \( .* : ( \d + ) \) / ) ;
1411
+ expect ( console . error . argsForCall [ 1 ] [ 0 ] ) . toContain ( 'onClick' ) ;
1412
+ matches = console . error . argsForCall [ 1 ] [ 0 ] . match ( / .* \( .* : ( \d + ) \) .* / ) ;
1382
1413
var currentLine = matches [ 1 ] ;
1383
1414
1384
1415
//verify line number has a proper relative difference,
@@ -1424,10 +1455,12 @@ describe('ReactDOMComponent', function() {
1424
1455
1425
1456
expect ( console . error . argsForCall . length ) . toBe ( 2 ) ;
1426
1457
1427
- var matches = console . error . argsForCall [ 0 ] [ 0 ] . match ( / .* c l a s s N a m e .* \( .* : ( \d + ) \) / ) ;
1458
+ expect ( console . error . argsForCall [ 0 ] [ 0 ] ) . toContain ( 'className' ) ;
1459
+ var matches = console . error . argsForCall [ 0 ] [ 0 ] . match ( / .* \( .* : ( \d + ) \) .* / ) ;
1428
1460
var previousLine = matches [ 1 ] ;
1429
1461
1430
- matches = console . error . argsForCall [ 1 ] [ 0 ] . match ( / .* o n C l i c k .* \( .* : ( \d + ) \) / ) ;
1462
+ expect ( console . error . argsForCall [ 1 ] [ 0 ] ) . toContain ( 'onClick' ) ;
1463
+ matches = console . error . argsForCall [ 1 ] [ 0 ] . match ( / .* \( .* : ( \d + ) \) .* / ) ;
1431
1464
var currentLine = matches [ 1 ] ;
1432
1465
1433
1466
//verify line number has a proper relative difference,
0 commit comments