You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
describe('Test warning', () => {
|
|
let spy: jest.SpyInstance;
|
|
|
|
beforeAll(() => {
|
|
spy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
});
|
|
|
|
afterAll(() => {
|
|
spy.mockRestore();
|
|
});
|
|
|
|
beforeEach(() => {
|
|
jest.resetModules();
|
|
});
|
|
|
|
afterEach(() => {
|
|
spy.mockReset();
|
|
});
|
|
|
|
it('Test noop', async () => {
|
|
const { noop } = await import('../warning');
|
|
const value = noop();
|
|
|
|
expect(value).toBe(undefined);
|
|
expect(spy).not.toHaveBeenCalled();
|
|
expect(noop).not.toThrow();
|
|
});
|
|
|
|
describe('process.env.NODE_ENV !== "production"', () => {
|
|
it('If `false`, exec `console.error`', async () => {
|
|
const warning = (await import('../warning')).default;
|
|
warning(false, 'error');
|
|
|
|
expect(spy).toHaveBeenCalled();
|
|
});
|
|
|
|
it('If `true`, do not exec `console.error`', async () => {
|
|
const warning = (await import('../warning')).default;
|
|
warning(true, 'error message');
|
|
|
|
expect(spy).not.toHaveBeenCalled();
|
|
});
|
|
});
|
|
|
|
describe('process.env.NODE_ENV === "production"', () => {
|
|
it('Whether `true` or `false`, do not exec `console.error`', async () => {
|
|
const prevEnv = process.env.NODE_ENV;
|
|
process.env.NODE_ENV = 'production';
|
|
|
|
const { default: warning, noop } = await import('../warning');
|
|
|
|
expect(warning).toEqual(noop);
|
|
|
|
warning(false, 'error message');
|
|
expect(spy).not.toHaveBeenCalled();
|
|
|
|
warning(true, 'error message');
|
|
expect(spy).not.toHaveBeenCalled();
|
|
|
|
process.env.NODE_ENV = prevEnv;
|
|
});
|
|
});
|
|
});
|
|
|