diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationCheckbox-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationCheckbox-test.js new file mode 100644 index 0000000000000..61c08c1295814 --- /dev/null +++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationCheckbox-test.js @@ -0,0 +1,99 @@ +/** + * 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 react-core + */ + +'use strict'; + +const ReactDOMServerIntegrationUtils = require('./utils/ReactDOMServerIntegrationTestUtils'); + +let React; +let ReactDOM; +let ReactDOMServer; + +function initModules() { + // Reset warning cache. + jest.resetModuleRegistry(); + React = require('react'); + ReactDOM = require('react-dom'); + ReactDOMServer = require('react-dom/server'); + + // Make them available to the helpers. + return { + ReactDOM, + ReactDOMServer, + }; +} + +const {resetModules, itRenders} = ReactDOMServerIntegrationUtils(initModules); + +describe('ReactDOMServerIntegrationCheckbox', () => { + beforeEach(() => { + resetModules(); + }); + + itRenders('a checkbox that is checked with an onChange', async render => { + const e = await render( + {}} />, + ); + expect(e.checked).toBe(true); + }); + + itRenders('a checkbox that is checked with readOnly', async render => { + const e = await render( + , + ); + expect(e.checked).toBe(true); + }); + + itRenders( + 'a checkbox that is checked and no onChange/readOnly', + async render => { + // this configuration should raise a dev warning that checked without + // onChange or readOnly is a mistake. + const e = await render(, 1); + expect(e.checked).toBe(true); + }, + ); + + itRenders('a checkbox with defaultChecked', async render => { + const e = await render(); + expect(e.checked).toBe(true); + expect(e.getAttribute('defaultChecked')).toBe(null); + }); + + itRenders('a checkbox checked overriding defaultChecked', async render => { + const e = await render( + , + 1, + ); + expect(e.checked).toBe(true); + expect(e.getAttribute('defaultChecked')).toBe(null); + }); + + itRenders( + 'a checkbox checked overriding defaultChecked no matter the prop order', + async render => { + const e = await render( + , + 1, + ); + expect(e.checked).toBe(true); + expect(e.getAttribute('defaultChecked')).toBe(null); + }, + ); +}); diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js deleted file mode 100644 index aef376168f458..0000000000000 --- a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js +++ /dev/null @@ -1,802 +0,0 @@ -/** - * 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 react-core - */ - -'use strict'; - -const ReactDOMServerIntegrationUtils = require('./utils/ReactDOMServerIntegrationTestUtils'); - -let React; -let ReactDOM; -let ReactDOMServer; - -function initModules() { - // Reset warning cache. - jest.resetModuleRegistry(); - React = require('react'); - ReactDOM = require('react-dom'); - ReactDOMServer = require('react-dom/server'); - - // Make them available to the helpers. - return { - ReactDOM, - ReactDOMServer, - }; -} - -const { - resetModules, - itRenders, - itClientRenders, - itThrowsWhenRendering, - renderIntoDom, - serverRender, -} = ReactDOMServerIntegrationUtils(initModules); - -describe('ReactDOMServerIntegration', () => { - beforeEach(() => { - resetModules(); - }); - - describe('form controls', function() { - describe('inputs', function() { - itRenders('an input with a value and an onChange', async render => { - const e = await render( {}} />); - expect(e.value).toBe('foo'); - }); - - itRenders('an input with a value and readOnly', async render => { - const e = await render(); - expect(e.value).toBe('foo'); - }); - - itRenders( - 'an input with a value and no onChange/readOnly', - async render => { - // this configuration should raise a dev warning that value without - // onChange or readOnly is a mistake. - const e = await render(, 1); - expect(e.value).toBe('foo'); - expect(e.getAttribute('value')).toBe('foo'); - }, - ); - - itRenders('an input with a defaultValue', async render => { - const e = await render(); - expect(e.value).toBe('foo'); - expect(e.getAttribute('value')).toBe('foo'); - expect(e.getAttribute('defaultValue')).toBe(null); - }); - - itRenders('an input value overriding defaultValue', async render => { - const e = await render( - , - 1, - ); - expect(e.value).toBe('foo'); - expect(e.getAttribute('value')).toBe('foo'); - expect(e.getAttribute('defaultValue')).toBe(null); - }); - - itRenders( - 'an input value overriding defaultValue no matter the prop order', - async render => { - const e = await render( - , - 1, - ); - expect(e.value).toBe('foo'); - expect(e.getAttribute('value')).toBe('foo'); - expect(e.getAttribute('defaultValue')).toBe(null); - }, - ); - }); - - describe('checkboxes', function() { - itRenders('a checkbox that is checked with an onChange', async render => { - const e = await render( - {}} />, - ); - expect(e.checked).toBe(true); - }); - - itRenders('a checkbox that is checked with readOnly', async render => { - const e = await render( - , - ); - expect(e.checked).toBe(true); - }); - - itRenders( - 'a checkbox that is checked and no onChange/readOnly', - async render => { - // this configuration should raise a dev warning that checked without - // onChange or readOnly is a mistake. - const e = await render(, 1); - expect(e.checked).toBe(true); - }, - ); - - itRenders('a checkbox with defaultChecked', async render => { - const e = await render(); - expect(e.checked).toBe(true); - expect(e.getAttribute('defaultChecked')).toBe(null); - }); - - itRenders( - 'a checkbox checked overriding defaultChecked', - async render => { - const e = await render( - , - 1, - ); - expect(e.checked).toBe(true); - expect(e.getAttribute('defaultChecked')).toBe(null); - }, - ); - - itRenders( - 'a checkbox checked overriding defaultChecked no matter the prop order', - async render => { - const e = await render( - , - 1, - ); - expect(e.checked).toBe(true); - expect(e.getAttribute('defaultChecked')).toBe(null); - }, - ); - }); - - describe('textareas', function() { - // textareas - // --------- - itRenders('a textarea with a value and an onChange', async render => { - const e = await render(