Commit 20bd9f8
committed
test(tools): bound the names-the-parameter match to whole words
cubic found namesParam was a substring scan after stripping non-letters, so it
accepted exactly the cases the assertion exists to reject:
"Invalid input" satisfied paramName "id" (generic)
"projectId cannot have leading …" satisfied paramName "id" (WRONG param)
"tableId cannot be '.'" satisfied paramName "table" (WRONG param)
"pathological failure" satisfied paramName "path" (substring)
A guard naming the wrong identifier therefore satisfied every rejects-by-name
assertion across all six suites.
The message is now split into letter-only tokens and the parameter must equal a
token or a run of adjacent tokens joined. The join keeps prose spellings valid —
validateFunctionName reports functionName as "Invalid function name", which is
a correct naming, not a near-miss. The run is capped at four tokens and
abandoned once longer than the target.
All 1523 existing assertions still pass, so no guard was relying on the loose
match. namesParam is now exported with its own contract test, because a weakness
in it is invisible from every suite it powers: reverting to the substring
version fails four of the new cases and nothing else.1 parent e30c536 commit 20bd9f8
2 files changed
Lines changed: 91 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
427 | | - | |
428 | | - | |
| 427 | + | |
429 | 428 | | |
430 | | - | |
431 | | - | |
432 | | - | |
433 | | - | |
434 | | - | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
435 | 450 | | |
436 | | - | |
| 451 | + | |
437 | 452 | | |
438 | | - | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
439 | 471 | | |
440 | 472 | | |
441 | 473 | | |
| |||
0 commit comments