/
githubmr
/
facebook-react
Обзор
Документация
Войти
/
githubmr
/
facebook-react
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-reconciler/src/__tests__/ReactEffectOrdering-test.js
90 строк
2 KB
Jan Kassens
lint: enable reportUnusedDisableDirectives and remove unused suppressions (#28721)
21 июн 2024, 19:24
Не верифицирован
21 июн 2024, 19:24
b565373
Код
Авторство
О чём код?
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @emails react-core * @jest-environment node */ 'use strict'; let React; let ReactNoop; let Scheduler; let act; let useEffect; let useLayoutEffect; let assertLog; describe('ReactEffectOrdering', () => { beforeEach(() => { jest.resetModules(); jest.useFakeTimers(); React = require('react'); ReactNoop = require('react-noop-renderer'); Scheduler = require('scheduler'); act = require('internal-test-utils').act; useEffect = React.useEffect; useLayoutEffect = React.useLayoutEffect; const InternalTestUtils = require('internal-test-utils'); assertLog = InternalTestUtils.assertLog; }); it('layout unmounts on deletion are fired in parent -> child order', async () => { const root = ReactNoop.createRoot(); function Parent() { useLayoutEffect(() => { return () => Scheduler.log('Unmount parent'); }); return <Child />; } function Child() { useLayoutEffect(() => { return () => Scheduler.log('Unmount child'); }); return 'Child'; } await act(() => { root.render(<Parent />); }); expect(root).toMatchRenderedOutput('Child'); await act(() => { root.render(null); }); assertLog(['Unmount parent', 'Unmount child']); }); it('passive unmounts on deletion are fired in parent -> child order', async () => { const root = ReactNoop.createRoot(); function Parent() { useEffect(() => { return () => Scheduler.log('Unmount parent'); }); return <Child />; } function Child() { useEffect(() => { return () => Scheduler.log('Unmount child'); }); return 'Child'; } await act(() => { root.render(<Parent />); }); expect(root).toMatchRenderedOutput('Child'); await act(() => { root.render(null); }); assertLog(['Unmount parent', 'Unmount child']); }); });