diff options
author | Matthew Miller <matthew@millerti.me> | 2022-04-11 20:44:13 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2022-04-11 20:44:13 -0700 |
commit | a30b413a07b383412bf5eca813a6e8d74c78174b (patch) | |
tree | ac8db8d3304db6947a87ad274a262549f9283b28 | |
parent | 575175622b58eedd0fbd6a239cece731c494f4ea (diff) |
Migrate custom errors into jest helper
-rw-r--r-- | packages/browser/src/helpers/__jest__/generateCustomError.ts | 17 | ||||
-rw-r--r-- | packages/browser/src/setupTests.ts | 70 | ||||
-rw-r--r-- | packages/browser/tsconfig.json | 3 |
3 files changed, 33 insertions, 57 deletions
diff --git a/packages/browser/src/helpers/__jest__/generateCustomError.ts b/packages/browser/src/helpers/__jest__/generateCustomError.ts new file mode 100644 index 0000000..f4b3250 --- /dev/null +++ b/packages/browser/src/helpers/__jest__/generateCustomError.ts @@ -0,0 +1,17 @@ +/** + * Create "custom errors" to help emulate WebAuthn API errors +*/ +type WebAuthnErrorName = + 'AbortError' + | 'ConstraintError' + | 'InvalidStateError' + | 'NotAllowedError' + | 'NotSupportedError' + | 'SecurityError' + | 'UnknownError'; + +export function generateCustomError(name: WebAuthnErrorName): Error { + const customError = new Error(); + customError.name = name; + return customError; +} diff --git a/packages/browser/src/setupTests.ts b/packages/browser/src/setupTests.ts index fda8840..6090d48 100644 --- a/packages/browser/src/setupTests.ts +++ b/packages/browser/src/setupTests.ts @@ -26,62 +26,20 @@ Object.defineProperty(window, 'location', { }); /** - * Define WebAuthn's custom API errors + * Create "custom errors" to help emulate WebAuthn API errors */ - -class AbortError extends Error { - constructor() { - super(); - this.name = 'AbortError'; - } -} - -class ConstraintError extends Error { - constructor() { - super(); - this.name = 'ConstraintError'; - } -} - -class InvalidStateError extends Error { - constructor() { - super(); - this.name = 'InvalidStateError'; - } -} - -class NotAllowedError extends Error { - constructor() { - super(); - this.name = 'NotAllowedError'; - } -} - -class NotSupportedError extends Error { - constructor() { - super(); - this.name = 'NotSupportedError'; - } -} - -class SecurityError extends Error { - constructor() { - super(); - this.name = 'SecurityError'; - } -} - -class UnknownError extends Error { - constructor() { - super(); - this.name = 'UnknownError'; - } +type WebAuthnErrorName = + 'AbortError' + | 'ConstraintError' + | 'InvalidStateError' + | 'NotAllowedError' + | 'NotSupportedError' + | 'SecurityError' + | 'UnknownError'; +function generateCustomError(name: WebAuthnErrorName): Error { + const customError = new Error(); + customError.name = name; + return customError; } -Object.defineProperty(global, 'AbortError', { value: AbortError }); -Object.defineProperty(global, 'ConstraintError', { value: ConstraintError }); -Object.defineProperty(global, 'InvalidStateError', { value: InvalidStateError }); -Object.defineProperty(global, 'NotAllowedError', { value: NotAllowedError }); -Object.defineProperty(global, 'NotSupportedError', { value: NotSupportedError }); -Object.defineProperty(global, 'SecurityError', { value: SecurityError }); -Object.defineProperty(global, 'UnknownError', { value: UnknownError }); +Object.defineProperty(global, 'generateCustomError', { value: generateCustomError }); diff --git a/packages/browser/tsconfig.json b/packages/browser/tsconfig.json index aec3091..7eb93cb 100644 --- a/packages/browser/tsconfig.json +++ b/packages/browser/tsconfig.json @@ -22,6 +22,7 @@ "exclude": [ "./src/**/*.test.ts", "./src/setupTests.ts", - "./src/**/__mocks__" + "./src/**/__mocks__", + "./src/**/__jest__" ] } |