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:
Jakob Ackermann 2020-10-21 11:47:56 +02:00 committed by Copybot
parent 5256572356
commit a124c3e4f4

View 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
})