Skip to content

Commit 95845da

Browse files
committed
debug config option
1 parent ec9b076 commit 95845da

File tree

5 files changed

+42
-7
lines changed

5 files changed

+42
-7
lines changed

src/__tests__/config.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ test('configure() overrides existing config values', () => {
1414
configure({ defaultDebugOptions: { message: 'debug message' } });
1515
expect(getConfig()).toEqual({
1616
asyncUtilTimeout: 5000,
17+
concurrentRoot: true,
18+
debug: false,
1719
defaultDebugOptions: { message: 'debug message' },
1820
defaultIncludeHiddenElements: false,
19-
concurrentRoot: true,
2021
});
2122
});
2223

src/config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ export type Config = {
1919
* Otherwise `render` will default to concurrent rendering.
2020
*/
2121
concurrentRoot: boolean;
22+
23+
/**
24+
* Verbose logging for the library.
25+
*/
26+
debug: boolean;
2227
};
2328

2429
export type ConfigAliasOptions = {
@@ -30,6 +35,7 @@ const defaultConfig: Config = {
3035
asyncUtilTimeout: 1000,
3136
defaultIncludeHiddenElements: false,
3237
concurrentRoot: true,
38+
debug: false,
3339
};
3440

3541
let config = { ...defaultConfig };

src/fire-event.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import act from './act';
1010
import { isElementMounted, isHostElement } from './helpers/component-tree';
1111
import { formatElement } from './helpers/format-element';
1212
import { isHostScrollView, isHostTextInput } from './helpers/host-component-names';
13-
import { logger } from './helpers/logger';
13+
import { debugLogger } from './helpers/logger';
1414
import { isPointerEventEnabled } from './helpers/pointer-events';
1515
import { isEditableTextInput } from './helpers/text-input';
1616
import { nativeState } from './native-state';
@@ -102,7 +102,7 @@ function findEventHandler(
102102
if (handlerState.enabled) {
103103
return handler;
104104
} else {
105-
logger.warn(
105+
debugLogger.warn(
106106
`FireEvent: "${eventName}" event handler is disabled on ${formatElement(element, {
107107
compact: true,
108108
})} due to ${handlerState.reason}.`,
@@ -157,11 +157,12 @@ function fireEvent(element: ReactTestInstance, eventName: EventName, ...data: un
157157

158158
const handler = findEventHandler(element, eventName);
159159
if (!handler) {
160-
logger.warn(
160+
debugLogger.warn(
161161
`FireEvent: no enabled event handler for "${eventName}" found on ${formatElement(element, {
162162
compact: true,
163163
})} or its ancestors.`,
164164
);
165+
165166
return;
166167
}
167168

src/helpers/logger.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import chalk from 'chalk';
22
import * as nodeConsole from 'console';
33
import redent from 'redent';
44
import * as nodeUtil from 'util';
5+
import { getConfig } from '../config';
56

67
export const logger = {
78
debug(message: unknown, ...args: unknown[]) {
@@ -25,6 +26,32 @@ export const logger = {
2526
},
2627
};
2728

29+
export const debugLogger = {
30+
debug(message: unknown, ...args: unknown[]) {
31+
if (getConfig().debug) {
32+
logger.debug(message, ...args);
33+
}
34+
},
35+
36+
info(message: unknown, ...args: unknown[]) {
37+
if (getConfig().debug) {
38+
logger.info(message, ...args);
39+
}
40+
},
41+
42+
warn(message: unknown, ...args: unknown[]) {
43+
if (getConfig().debug) {
44+
logger.warn(message, ...args);
45+
}
46+
},
47+
48+
error(message: unknown, ...args: unknown[]) {
49+
if (getConfig().debug) {
50+
logger.error(message, ...args);
51+
}
52+
},
53+
};
54+
2855
function formatMessage(symbol: string, message: unknown, ...args: unknown[]) {
2956
const formatted = nodeUtil.format(message, ...args);
3057
const indented = redent(formatted, 4);

src/user-event/utils/dispatch-event.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { ReactTestInstance } from 'react-test-renderer';
22
import act from '../../act';
33
import { isElementMounted } from '../../helpers/component-tree';
44
import { formatElement } from '../../helpers/format-element';
5-
import { logger } from '../../helpers/logger';
5+
import { debugLogger } from '../../helpers/logger';
66

77
/**
88
* Basic dispatch event function used by User Event module.
@@ -18,9 +18,9 @@ export function dispatchEvent(element: ReactTestInstance, eventName: string, ...
1818

1919
const handler = getEventHandler(element, eventName);
2020
if (!handler) {
21-
logger.debug(
21+
debugLogger.debug(
2222
`User Event: no event handler for "${eventName}" found on ${formatElement(element, {
23-
minimal: true,
23+
compact: true,
2424
})}`,
2525
);
2626
return;

0 commit comments

Comments
 (0)