Skip to content

Commit

Permalink
Update Float tests to use a clean environment per test not just suite
Browse files Browse the repository at this point in the history
  • Loading branch information
eps1lon committed Oct 2, 2022
1 parent 82e81d9 commit a14bb54
Showing 1 changed file with 37 additions and 22 deletions.
59 changes: 37 additions & 22 deletions packages/react-dom/src/__tests__/ReactDOMFloat-test.js
Expand Up @@ -5,11 +5,13 @@
* LICENSE file in the root directory of this source tree.
*
* @emails react-core
* @jest-environment node
*/

'use strict';

let JSDOM;
let JSDOMVirtualConsole;
let Stream;
let Scheduler;
let React;
Expand All @@ -18,36 +20,51 @@ let ReactDOMClient;
let ReactDOMFizzServer;
let Suspense;
let textCache;
let document;
let writable;
const CSPnonce = null;
let container;
let buffer = '';
let hasErrored = false;
let fatalError = undefined;

function resetModules() {
jest.resetModules();
({JSDOM, VirtualConsole: JSDOMVirtualConsole} = require('jsdom'));
Scheduler = require('scheduler');
React = require('react');
ReactDOMClient = require('react-dom/client');
ReactDOMFizzServer = require('react-dom/server');
Stream = require('stream');
Suspense = React.Suspense;
}

function resetJSDOM(markup) {
// Test Environment
const virtualConsole = new JSDOMVirtualConsole();
virtualConsole.sendTo(console, {
omitJSDOMErrors: true,
});
virtualConsole.on('jsdomError', error => {
console.error(error);
});
const jsdom = new JSDOM(markup, {
runScripts: 'dangerously',
virtualConsole,
});

global.window = jsdom.window;
global.document = jsdom.window.document;
global.navigator = jsdom.window.navigator;
global.Node = jsdom.window.Node;
}

describe('ReactDOMFloat', () => {
beforeEach(() => {
jest.resetModules();
JSDOM = require('jsdom').JSDOM;
Scheduler = require('scheduler');
React = require('react');
ReactDOM = require('react-dom');
ReactDOMClient = require('react-dom/client');
ReactDOMFizzServer = require('react-dom/server');
Stream = require('stream');
Suspense = React.Suspense;
resetModules();
resetJSDOM('<!DOCTYPE html><html><head></head><body><div id="container">');

textCache = new Map();

// Test Environment
const jsdom = new JSDOM(
'<!DOCTYPE html><html><head></head><body><div id="container">',
{
runScripts: 'dangerously',
},
);
document = jsdom.window.document;
container = document.getElementById('container');

buffer = '';
Expand Down Expand Up @@ -129,10 +146,8 @@ describe('ReactDOMFloat', () => {
// We assume that we have now received a proper fragment of HTML.
const bufferedContent = buffer;
// Test Environment
const jsdom = new JSDOM(bufferedContent, {
runScripts: 'dangerously',
});
document = jsdom.window.document;
resetJSDOM(bufferedContent);

container = document;
buffer = '';
}
Expand Down

0 comments on commit a14bb54

Please sign in to comment.