mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-29 21:23:45 -05:00
Merge pull request #3278 from overleaf/as-prop-type-test-fail
Make prop-type errors fail the frontend tests GitOrigin-RevId: 4676239be8bfc541397740bdbe4044751e088c82
This commit is contained in:
parent
5256572356
commit
a124c3e4f4
1 changed files with 28 additions and 0 deletions
28
services/web/test/frontend/prop-types.test.js
Normal file
28
services/web/test/frontend/prop-types.test.js
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/**
|
||||||
|
* Make tests fail when prop-types are incorrect.
|
||||||
|
*
|
||||||
|
* React's prop-types library logs an console.error when the types are
|
||||||
|
* incorrect. Since this error is only in the console, tests that fail the type-
|
||||||
|
* check will still pass.
|
||||||
|
*
|
||||||
|
* To ensure that type-checking is tested, monkey-patch the global console.error
|
||||||
|
* to fail the tests when prop-types errors.
|
||||||
|
*/
|
||||||
|
const originalConsoleError = global.console.error
|
||||||
|
before(function() {
|
||||||
|
global.console.error = (message, ...args) => {
|
||||||
|
// Ensure we still log the error
|
||||||
|
originalConsoleError(message, ...args)
|
||||||
|
|
||||||
|
// Check if the error is from prop-types
|
||||||
|
if (/Failed prop type/.test(message)) {
|
||||||
|
// Throw an error, causing the test to fail
|
||||||
|
throw new Error(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Restore the original method
|
||||||
|
after(function() {
|
||||||
|
global.console.error = originalConsoleError
|
||||||
|
})
|
Loading…
Reference in a new issue