UNPKG

cli-testing-library

Version:

Simple and complete CLI testing utilities that encourage good testing practices.

1 lines 3.77 kB
{"version":3,"file":"config.cjs","sources":["../../src/config.ts"],"sourcesContent":["import type { TestInstance } from \"./types\";\n\n// import {prettyDOM} from './pretty-dom'\n\nexport interface Config {\n /**\n * WARNING: `unstable` prefix means this API may change in patch and minor releases.\n * @param cb\n */\n unstable_advanceTimersWrapper: (\n cb: (...args: Array<unknown>) => unknown,\n ) => unknown;\n asyncUtilTimeout: number;\n renderAwaitTime: number;\n errorDebounceTimeout: number;\n showOriginalStackTrace: boolean;\n throwSuggestions: boolean;\n getInstanceError: (message: string | null, container: TestInstance) => Error;\n}\n\nexport interface ConfigFn {\n (existingConfig: Config): Partial<Config>;\n}\n\ntype Callback<T> = () => T;\ninterface InternalConfig extends Config {\n _disableExpensiveErrorDiagnostics: boolean;\n}\n\n// It would be cleaner for this to live inside './queries', but\n// other parts of the code assume that all exports from\n// './queries' are query functions.\nlet config: InternalConfig = {\n asyncUtilTimeout: 1000,\n // Short amount of time to wait for your process to spin up after a `spawn`. AFAIK There's unfortunately not much\n // of a better way to do this\n renderAwaitTime: 100,\n // Internal timer time to wait before attempting error recovery debounce action\n errorDebounceTimeout: 100,\n unstable_advanceTimersWrapper: (cb) => cb(),\n // default value for the `hidden` option in `ByRole` queries\n // showOriginalStackTrace flag to show the full error stack traces for async errors\n showOriginalStackTrace: false,\n\n // throw errors w/ suggestions for better queries. Opt in so off by default.\n throwSuggestions: false,\n\n // called when getBy* queries fail. (message, container) => Error\n getInstanceError(message, testInstance: TestInstance | undefined) {\n let instanceWarning = \"\";\n if (testInstance) {\n const stdallArrStr = testInstance.getStdallStr();\n instanceWarning = `\\n${stdallArrStr}`;\n } else {\n instanceWarning = \"\";\n }\n const error = new Error(\n [message, instanceWarning].filter(Boolean).join(\"\\n\\n\"),\n );\n error.name = \"TestingLibraryElementError\";\n return error;\n },\n _disableExpensiveErrorDiagnostics: false,\n};\n\nexport function runWithExpensiveErrorDiagnosticsDisabled<T>(\n callback: Callback<T>,\n) {\n try {\n config._disableExpensiveErrorDiagnostics = true;\n return callback();\n } finally {\n config._disableExpensiveErrorDiagnostics = false;\n }\n}\n\nexport function configure(newConfig: ConfigFn | Partial<Config>): void {\n if (typeof newConfig === \"function\") {\n // Pass the existing config out to the provided function\n // and accept a delta in return\n newConfig = newConfig(config);\n }\n\n // Merge the incoming config delta\n config = {\n ...config,\n ...newConfig,\n };\n}\n\nexport function getConfig(): Config {\n return config;\n}\n"],"names":[],"mappings":";;AAgCA,IAAI,SAAyB;AAAA,EAC3B,kBAAkB;AAAA;AAAA;AAAA,EAGlB,iBAAiB;AAAA;AAAA,EAEjB,sBAAsB;AAAA,EACtB,+BAA+B,CAAC,OAAO,GAAG;AAAA;AAAA;AAAA,EAG1C,wBAAwB;AAAA;AAAA,EAGxB,kBAAkB;AAAA;AAAA,EAGlB,iBAAiB,SAAS,cAAwC;AAChE,QAAI,kBAAkB;AACtB,QAAI,cAAc;AACV,YAAA,eAAe,aAAa,aAAa;AAC7B,wBAAA;AAAA,EAAK,YAAY;AAAA,IAAA,OAC9B;AACa,wBAAA;AAAA,IAAA;AAEpB,UAAM,QAAQ,IAAI;AAAA,MAChB,CAAC,SAAS,eAAe,EAAE,OAAO,OAAO,EAAE,KAAK,MAAM;AAAA,IACxD;AACA,UAAM,OAAO;AACN,WAAA;AAAA,EACT;AAAA,EACA,mCAAmC;AACrC;AAEO,SAAS,yCACd,UACA;AACI,MAAA;AACF,WAAO,oCAAoC;AAC3C,WAAO,SAAS;AAAA,EAAA,UAChB;AACA,WAAO,oCAAoC;AAAA,EAAA;AAE/C;AAEO,SAAS,UAAU,WAA6C;AACjE,MAAA,OAAO,cAAc,YAAY;AAGnC,gBAAY,UAAU,MAAM;AAAA,EAAA;AAIrB,WAAA;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAEO,SAAS,YAAoB;AAC3B,SAAA;AACT;;;;"}