diff options
author | Matthew Miller <matthew@millerti.me> | 2022-09-28 21:14:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-28 21:14:32 -0700 |
commit | 8b75f0836e39df29b8593f96fb806608c2a81196 (patch) | |
tree | ba1d6e1346ba40cddc35f5a9c2f3ca68358eecc2 /packages/browser/src/methods | |
parent | e64b50cc84d49478d49e0a394511963d0110277b (diff) | |
parent | 4ea0bd370609294e3cf70f467d234093fc6e87fb (diff) |
Merge pull request #275 from MasterKale/fix/webauthn-abort-controller-race-condition
fix/webauthn-abort-controller-race-condition
Diffstat (limited to 'packages/browser/src/methods')
4 files changed, 8 insertions, 8 deletions
diff --git a/packages/browser/src/methods/startAuthentication.test.ts b/packages/browser/src/methods/startAuthentication.test.ts index 1936a9e..e112124 100644 --- a/packages/browser/src/methods/startAuthentication.test.ts +++ b/packages/browser/src/methods/startAuthentication.test.ts @@ -60,6 +60,10 @@ beforeEach(() => { mockSupportsWebAuthn.mockReturnValue(true); mockSupportsAutofill.mockResolvedValue(true); + + // Reset the abort service so we get an accurate call count + // @ts-ignore + webauthnAbortService.controller = undefined; }); afterEach(() => { @@ -228,8 +232,6 @@ test('should support "cable" transport', async () => { test('should cancel an existing call when executed again', async () => { const abortSpy = jest.spyOn(AbortController.prototype, 'abort'); - // Reset the abort service so we get an accurate call count - webauthnAbortService.reset(); // Fire off a request and immediately attempt a second one startAuthentication(goodOpts1); diff --git a/packages/browser/src/methods/startAuthentication.ts b/packages/browser/src/methods/startAuthentication.ts index 4cbe688..761a96c 100644 --- a/packages/browser/src/methods/startAuthentication.ts +++ b/packages/browser/src/methods/startAuthentication.ts @@ -80,8 +80,6 @@ export async function startAuthentication( credential = (await navigator.credentials.get(options)) as AuthenticationCredential; } catch (err) { throw identifyAuthenticationError({ error: err as Error, options }); - } finally { - webauthnAbortService.reset(); } if (!credential) { diff --git a/packages/browser/src/methods/startRegistration.test.ts b/packages/browser/src/methods/startRegistration.test.ts index 9a7196b..2dc11be 100644 --- a/packages/browser/src/methods/startRegistration.test.ts +++ b/packages/browser/src/methods/startRegistration.test.ts @@ -59,6 +59,10 @@ beforeEach(() => { }); mockSupportsWebauthn.mockReturnValue(true); + + // Reset the abort service so we get an accurate call count + // @ts-ignore + webauthnAbortService.controller = undefined; }); afterEach(() => { @@ -215,8 +219,6 @@ test('should return "cable" transport from response', async () => { test('should cancel an existing call when executed again', async () => { const abortSpy = jest.spyOn(AbortController.prototype, 'abort'); - // Reset the abort service so we get an accurate call count - webauthnAbortService.reset(); // Fire off a request and immediately attempt a second one startRegistration(goodOpts1); diff --git a/packages/browser/src/methods/startRegistration.ts b/packages/browser/src/methods/startRegistration.ts index e103c11..bc30707 100644 --- a/packages/browser/src/methods/startRegistration.ts +++ b/packages/browser/src/methods/startRegistration.ts @@ -46,8 +46,6 @@ export async function startRegistration( credential = (await navigator.credentials.create(options)) as RegistrationCredential; } catch (err) { throw identifyRegistrationError({ error: err as Error, options }); - } finally { - webauthnAbortService.reset(); } if (!credential) { |