mirror of
https://gitee.com/ant-design/ant-design.git
synced 2024-12-16 01:41:02 +08:00
338ec7dad7
* pref: better code style for production * refactor `devWarning` * don't use `useEffect` only wrap `devWarning` * chore: add 'noop' to coverage * chore: add test cases for devWarning * chore: add test case * chore: update test cases for devWarning * chore: restore test script command * fix: remove 'throw new Error' * should not use `throw` for browser * chore: update test case for AutoComplete * perf: add prefix for `devWarning` * update RegExp for UMD * add prefix for ES and CJS * chore: better code style * perf: * upgrade antd-tools * remove `injectWarningCondition` * rename `devWarning` to `warning` * chore: better code style * chore: better code style * chore: restore hasValidName
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { kebabCase } from 'lodash';
|
|
import canUseDom from 'rc-util/lib/Dom/canUseDom';
|
|
import ConfigProvider from '..';
|
|
import { resetWarned } from '../../_util/warning';
|
|
|
|
let mockCanUseDom = true;
|
|
|
|
jest.mock('rc-util/lib/Dom/canUseDom', () => () => mockCanUseDom);
|
|
|
|
describe('ConfigProvider.Theme', () => {
|
|
beforeEach(() => {
|
|
mockCanUseDom = true;
|
|
});
|
|
|
|
const colorList = ['primaryColor', 'successColor', 'warningColor', 'errorColor', 'infoColor'];
|
|
|
|
colorList.forEach(colorName => {
|
|
it(colorName, () => {
|
|
ConfigProvider.config({
|
|
prefixCls: 'bamboo',
|
|
theme: {
|
|
[colorName]: '#0000FF',
|
|
},
|
|
});
|
|
|
|
const styles: any[] = Array.from(document.querySelectorAll('style'));
|
|
const themeStyle = styles.find(style =>
|
|
style.getAttribute('rc-util-key').includes('-dynamic-theme'),
|
|
);
|
|
expect(themeStyle).toBeTruthy();
|
|
|
|
expect(themeStyle.innerHTML).toContain(`--bamboo-${kebabCase(colorName)}: rgb(0, 0, 255)`);
|
|
});
|
|
});
|
|
|
|
it('warning for SSR', () => {
|
|
resetWarned();
|
|
|
|
const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
mockCanUseDom = false;
|
|
expect(canUseDom()).toBeFalsy();
|
|
|
|
ConfigProvider.config({
|
|
theme: {},
|
|
});
|
|
|
|
expect(errorSpy).toHaveBeenCalledWith(
|
|
'Warning: [antd: ConfigProvider] SSR do not support dynamic theme with css variables.',
|
|
);
|
|
errorSpy.mockRestore();
|
|
});
|
|
});
|