/* eslint-disable react/jsx-no-constructed-context-values */ import path from 'path'; import * as React from 'react'; import { createCache, StyleProvider } from '@ant-design/cssinjs'; import { globSync } from 'glob'; import kebabCase from 'lodash/kebabCase'; import { renderToString } from 'react-dom/server'; import { resetWarned } from '../../components/_util/warning'; import { render } from '../utils'; import { TriggerMockContext } from './demoTestContext'; import { excludeWarning, isSafeWarning } from './excludeWarning'; import rootPropsTest from './rootPropsTest'; import { ConfigProvider } from 'antd'; export { rootPropsTest }; require('isomorphic-fetch'); export type Options = { skip?: boolean | string[]; testingLib?: boolean; testRootProps?: false | object; /** * Not check component `displayName`, check path only */ nameCheckPathOnly?: boolean; }; function baseText(doInject: boolean, component: string, options: Options = {}) { const files = globSync(`./components/${component}/demo/*.tsx`); files.forEach((file) => { // to compatible windows path file = file.split(path.sep).join('/'); const testMethod = options.skip === true || (Array.isArray(options.skip) && options.skip.some((c) => file.includes(c))) ? test.skip : test; // function doTest(name: string, openTrigger = false) { testMethod( doInject ? `renders ${file} extend context correctly` : `renders ${file} correctly`, () => { resetWarned(); const errSpy = excludeWarning(); Date.now = jest.fn(() => new Date('2016-11-22').getTime()); jest.useFakeTimers().setSystemTime(new Date('2016-11-22')); let Demo = require(`../../${file}`).default; // eslint-disable-line global-require, import/no-dynamic-require // Inject Trigger status unless skipped Demo = typeof Demo === 'function' ? : Demo; if (doInject) { Demo = ( {Demo} ); } // Inject cssinjs cache to avoid create