1. /**
    
  2.  * Copyright (c) Meta Platforms, Inc. and affiliates.
    
  3.  *
    
  4.  * This source code is licensed under the MIT license found in the
    
  5.  * LICENSE file in the root directory of this source tree.
    
  6.  *
    
  7.  * @emails react-core
    
  8.  * @jest-environment node
    
  9.  */
    
  10. 
    
  11. 'use strict';
    
  12. 
    
  13. let React;
    
  14. let ReactDOMServer;
    
  15. let ReactDOMServerBrowser;
    
  16. 
    
  17. describe('ReactServerRenderingBrowser', () => {
    
  18.   beforeEach(() => {
    
  19.     jest.resetModules();
    
  20.     React = require('react');
    
  21.     ReactDOMServer = require('react-dom/server');
    
  22.     // For extra isolation between what would be two bundles on npm
    
  23.     jest.resetModules();
    
  24.     ReactDOMServerBrowser = require('react-dom/server.browser');
    
  25.   });
    
  26. 
    
  27.   it('returns the same results as react-dom/server', () => {
    
  28.     class Nice extends React.Component {
    
  29.       render() {
    
  30.         return <h2>I am feeling very good today, thanks, how are you?</h2>;
    
  31.       }
    
  32.     }
    
  33.     function Greeting() {
    
  34.       return (
    
  35.         <div>
    
  36.           <h1>How are you?</h1>
    
  37.           <Nice />
    
  38.         </div>
    
  39.       );
    
  40.     }
    
  41.     expect(ReactDOMServerBrowser.renderToString(<Greeting />)).toEqual(
    
  42.       ReactDOMServer.renderToString(<Greeting />),
    
  43.     );
    
  44.     expect(ReactDOMServerBrowser.renderToStaticMarkup(<Greeting />)).toEqual(
    
  45.       ReactDOMServer.renderToStaticMarkup(<Greeting />),
    
  46.     );
    
  47.   });
    
  48. 
    
  49.   it('throws meaningfully for server-only APIs', () => {
    
  50.     expect(() => ReactDOMServerBrowser.renderToNodeStream(<div />)).toThrow(
    
  51.       'ReactDOMServer.renderToNodeStream(): The streaming API is not available ' +
    
  52.         'in the browser. Use ReactDOMServer.renderToString() instead.',
    
  53.     );
    
  54.     expect(() =>
    
  55.       ReactDOMServerBrowser.renderToStaticNodeStream(<div />),
    
  56.     ).toThrow(
    
  57.       'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
    
  58.         'in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.',
    
  59.     );
    
  60.   });
    
  61. });