UNPKG

recoil

Version:

Recoil - A state management library for React

58 lines (55 loc) 1.85 kB
/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @emails oncall+recoil * @flow strict-local * @format */ 'use strict'; const { getRecoilTestFn } = require('../../__test_utils__/Recoil_TestingUtils'); let React, useEffect, useRef, ReactDOM, act, RecoilRoot, atom, componentThatReadsAndWritesAtom, useRecoilBridgeAcrossReactRoots; const testRecoil = getRecoilTestFn(() => { React = require('react'); ({ useEffect, useRef } = require('react')); ReactDOM = require('ReactDOMLegacy_DEPRECATED'); ({ act } = require('ReactTestUtils')); ({ RecoilRoot } = require('../../core/Recoil_RecoilRoot.react')); atom = require('../../recoil_values/Recoil_atom'); ({ componentThatReadsAndWritesAtom } = require('../../__test_utils__/Recoil_TestingUtils')); useRecoilBridgeAcrossReactRoots = require('../Recoil_useRecoilBridgeAcrossReactRoots'); }); testRecoil('useRecoilBridgeAcrossReactRoots - create a context bridge', async () => { const myAtom = atom({ key: 'useRecoilBridgeAcrossReactRoots - context bridge', default: 'DEFAULT' }); declare function initializeState(arg0: any): any; const [ReadWriteAtom, setAtom] = componentThatReadsAndWritesAtom(myAtom); declare function NestedReactRoot(arg0: any): any; const container = document.createElement('div'); act(() => { ReactDOM.render(<RecoilRoot initializeState={initializeState}> <ReadWriteAtom /> <NestedReactRoot> <ReadWriteAtom /> </NestedReactRoot> </RecoilRoot>, container); }); expect(container.textContent).toEqual('"INITIALIZE""INITIALIZE"'); act(() => setAtom('SET')); expect(container.textContent).toEqual('"SET""SET"'); });