diff --git a/.test/setupTests.ts b/.test/setupTests.ts index bfcbc65d..28f071db 100644 --- a/.test/setupTests.ts +++ b/.test/setupTests.ts @@ -1,18 +1,21 @@ /* eslint-disable prettier/prettier */ import '@testing-library/jest-dom/extend-expect'; -import MutationObserver from 'mutation-observer'; -// Global MutationObserver Mocks -window.MutationObserver = MutationObserver; +// React SSR when environment is not js-dom +if (global.window !== undefined) { -// Global Test Environment Mocks -window.matchMedia = jest.fn((query: string): MediaQueryList => ({ - media: query, - onchange: null, - matches: false, - addListener: jest.fn(), - dispatchEvent: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn() -})); \ No newline at end of file + // Global MutationObserver Mocks + window.MutationObserver = require('mutation-observer'); + + // Global Test Environment Mocks + window.matchMedia = jest.fn((query: string): MediaQueryList => ({ + media: query, + onchange: null, + matches: false, + addListener: jest.fn(), + dispatchEvent: jest.fn(), + removeListener: jest.fn(), + addEventListener: jest.fn(), + removeEventListener: jest.fn() + })); +} diff --git a/__tests__/ReactSSR.test.tsx b/__tests__/ReactSSR.test.tsx new file mode 100644 index 00000000..be551408 --- /dev/null +++ b/__tests__/ReactSSR.test.tsx @@ -0,0 +1,13 @@ +/** + * @jest-environment node + */ + +import React from 'react'; +import { renderToString } from 'react-dom/server'; +import { Select } from '../src'; + +test('select element can be rendered using react-dom/server', () => { + + expect(() => renderToString(