|
10 | 10 | 'use strict';
|
11 | 11 |
|
12 | 12 | const stream = require('stream');
|
| 13 | +const shouldIgnoreConsoleError = require('../../../../../scripts/jest/shouldIgnoreConsoleError'); |
13 | 14 |
|
14 | 15 | module.exports = function(initModules) {
|
15 | 16 | let ReactDOM;
|
@@ -74,23 +75,29 @@ module.exports = function(initModules) {
|
74 | 75 | }
|
75 | 76 |
|
76 | 77 | const result = await fn();
|
77 |
| - if ( |
78 |
| - console.error.calls && |
79 |
| - console.error.calls.count() !== count && |
80 |
| - console.error.calls.count() !== 0 |
81 |
| - ) { |
82 |
| - console.log( |
83 |
| - `We expected ${count} warning(s), but saw ${console.error.calls.count()} warning(s).`, |
84 |
| - ); |
85 |
| - if (console.error.calls.count() > 0) { |
86 |
| - console.log(`We saw these warnings:`); |
87 |
| - for (let i = 0; i < console.error.calls.count(); i++) { |
88 |
| - console.log(...console.error.calls.argsFor(i)); |
| 78 | + if (console.error.calls && console.error.calls.count() !== 0) { |
| 79 | + const filteredWarnings = []; |
| 80 | + for (let i = 0; i < console.error.calls.count(); i++) { |
| 81 | + const args = console.error.calls.argsFor(i); |
| 82 | + const [format, ...rest] = args; |
| 83 | + if (!shouldIgnoreConsoleError(format, rest)) { |
| 84 | + filteredWarnings.push(args); |
| 85 | + } |
| 86 | + } |
| 87 | + if (filteredWarnings.length !== count) { |
| 88 | + console.log( |
| 89 | + `We expected ${count} warning(s), but saw ${filteredWarnings.length} warning(s).`, |
| 90 | + ); |
| 91 | + if (filteredWarnings.count > 0) { |
| 92 | + console.log(`We saw these warnings:`); |
| 93 | + for (let i = 0; i < filteredWarnings.length; i++) { |
| 94 | + console.log(...filteredWarnings[i]); |
| 95 | + } |
| 96 | + } |
| 97 | + if (__DEV__) { |
| 98 | + expect(console.error).toHaveBeenCalledTimes(count); |
89 | 99 | }
|
90 | 100 | }
|
91 |
| - } |
92 |
| - if (__DEV__) { |
93 |
| - expect(console.error).toHaveBeenCalledTimes(count); |
94 | 101 | }
|
95 | 102 | return result;
|
96 | 103 | }
|
|
0 commit comments