/
githubmr
/
facebook-react
Обзор
Документация
Войти
/
githubmr
/
facebook-react
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
scripts/jest/matchers/reactTestMatchers.js
48 строк
1 KB
Ricky
[tests] add `assertConsole<method>Dev` helpers (#28732)
11 апр 2024, 15:19
Не верифицирован
11 апр 2024, 15:19
608edcc
Код
Авторство
О чём код?
'use strict'; const JestReact = require('jest-react'); const {assertConsoleLogsCleared} = require('internal-test-utils/consoleMock'); // TODO: Move to ReactInternalTestUtils function captureAssertion(fn) { // Trick to use a Jest matcher inside another Jest matcher. `fn` contains an // assertion; if it throws, we capture the error and return it, so the stack // trace presented to the user points to the original assertion in the // test file. try { fn(); } catch (error) { return { pass: false, message: () => error.message, }; } return {pass: true}; } function assertYieldsWereCleared(Scheduler, caller) { const actualYields = Scheduler.unstable_clearLog(); if (actualYields.length !== 0) { const error = Error( 'The event log is not empty. Call assertLog(...) first.' ); Error.captureStackTrace(error, caller); throw error; } assertConsoleLogsCleared(); } function toMatchRenderedOutput(ReactNoop, expectedJSX) { if (typeof ReactNoop.getChildrenAsJSX === 'function') { const Scheduler = ReactNoop._Scheduler; assertYieldsWereCleared(Scheduler, toMatchRenderedOutput); return captureAssertion(() => { expect(ReactNoop.getChildrenAsJSX()).toEqual(expectedJSX); }); } return JestReact.unstable_toMatchRenderedOutput(ReactNoop, expectedJSX); } module.exports = { toMatchRenderedOutput, };