summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2022-04-11 20:44:13 -0700
committerMatthew Miller <matthew@millerti.me>2022-04-11 20:44:13 -0700
commita30b413a07b383412bf5eca813a6e8d74c78174b (patch)
treeac8db8d3304db6947a87ad274a262549f9283b28
parent575175622b58eedd0fbd6a239cece731c494f4ea (diff)
Migrate custom errors into jest helper
-rw-r--r--packages/browser/src/helpers/__jest__/generateCustomError.ts17
-rw-r--r--packages/browser/src/setupTests.ts70
-rw-r--r--packages/browser/tsconfig.json3
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__"
]
}