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.
73 lines
2.5 KiB
73 lines
2.5 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.configure = configure; |
|
exports.getConfig = getConfig; |
|
exports.runWithExpensiveErrorDiagnosticsDisabled = runWithExpensiveErrorDiagnosticsDisabled; |
|
|
|
var _prettyDom = require("./pretty-dom"); |
|
|
|
// It would be cleaner for this to live inside './queries', but |
|
// other parts of the code assume that all exports from |
|
// './queries' are query functions. |
|
let config = { |
|
testIdAttribute: 'data-testid', |
|
asyncUtilTimeout: 1000, |
|
// asyncWrapper and advanceTimersWrapper is to support React's async `act` function. |
|
// forcing react-testing-library to wrap all async functions would've been |
|
// a total nightmare (consider wrapping every findBy* query and then also |
|
// updating `within` so those would be wrapped too. Total nightmare). |
|
// so we have this config option that's really only intended for |
|
// react-testing-library to use. For that reason, this feature will remain |
|
// undocumented. |
|
asyncWrapper: cb => cb(), |
|
unstable_advanceTimersWrapper: cb => cb(), |
|
eventWrapper: cb => cb(), |
|
// default value for the `hidden` option in `ByRole` queries |
|
defaultHidden: false, |
|
// default value for the `ignore` option in `ByText` queries |
|
defaultIgnore: 'script, style', |
|
// showOriginalStackTrace flag to show the full error stack traces for async errors |
|
showOriginalStackTrace: false, |
|
// throw errors w/ suggestions for better queries. Opt in so off by default. |
|
throwSuggestions: false, |
|
|
|
// called when getBy* queries fail. (message, container) => Error |
|
getElementError(message, container) { |
|
const prettifiedDOM = (0, _prettyDom.prettyDOM)(container); |
|
const error = new Error([message, `Ignored nodes: comments, <script />, <style />\n${prettifiedDOM}`].filter(Boolean).join('\n\n')); |
|
error.name = 'TestingLibraryElementError'; |
|
return error; |
|
}, |
|
|
|
_disableExpensiveErrorDiagnostics: false, |
|
computedStyleSupportsPseudoElements: false |
|
}; |
|
|
|
function runWithExpensiveErrorDiagnosticsDisabled(callback) { |
|
try { |
|
config._disableExpensiveErrorDiagnostics = true; |
|
return callback(); |
|
} finally { |
|
config._disableExpensiveErrorDiagnostics = false; |
|
} |
|
} |
|
|
|
function configure(newConfig) { |
|
if (typeof newConfig === 'function') { |
|
// Pass the existing config out to the provided function |
|
// and accept a delta in return |
|
newConfig = newConfig(config); |
|
} // Merge the incoming config delta |
|
|
|
|
|
config = { ...config, |
|
...newConfig |
|
}; |
|
} |
|
|
|
function getConfig() { |
|
return config; |
|
} |