- /**
- * 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
- */
- 'use strict'; 
- // Polyfills for test environment
- global.ReadableStream =
- require('web-streams-polyfill/ponyfill/es6').ReadableStream; 
- global.TextEncoder = require('util').TextEncoder; 
- global.TextDecoder = require('util').TextDecoder; 
- let React; 
- let ReactServerDOMServer; 
- let ReactServerDOMClient; 
- describe('ReactFlightDOMBrowser', () => { 
- beforeEach(() => { 
- jest.resetModules(); 
- // Simulate the condition resolution 
- jest.mock('react', () => require('react/react.shared-subset')); 
- jest.mock('react-server-dom-turbopack/server', () => 
- require('react-server-dom-turbopack/server.browser'), 
- );
- ReactServerDOMServer = require('react-server-dom-turbopack/server.browser'); 
- __unmockReact(); 
- jest.resetModules(); 
- React = require('react'); 
- ReactServerDOMClient = require('react-server-dom-turbopack/client'); 
- });
- it('should resolve HTML using W3C streams', async () => { 
- function Text({children}) { 
- return <span>{children}</span>; 
- }
- function HTML() {
- return (
- <div>
- <Text>hello</Text>
- <Text>world</Text>
- </div>
- );
- }
- function App() {
- const model = {
- html: <HTML />, 
- };
- return model; 
- }
- const stream = ReactServerDOMServer.renderToReadableStream(<App />); 
- const response = ReactServerDOMClient.createFromReadableStream(stream); 
- const model = await response; 
- expect(model).toEqual({ 
- html: (
- <div> 
- <span>hello</span> 
- <span>world</span> 
- </div> 
- ),
- });
- });
- });