diff options
Diffstat (limited to 'packages/browser/src')
-rw-r--r-- | packages/browser/src/helpers/browserSupportsWebAuthnAutofill.test.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/browser/src/helpers/browserSupportsWebAuthnAutofill.test.ts b/packages/browser/src/helpers/browserSupportsWebAuthnAutofill.test.ts new file mode 100644 index 0000000..57ce647 --- /dev/null +++ b/packages/browser/src/helpers/browserSupportsWebAuthnAutofill.test.ts @@ -0,0 +1,35 @@ +import { browserSupportsWebAuthnAutofill } from './browserSupportsWebAuthnAutofill'; + +// Mock "isConditionalMediationAvailable" +const mockICMA = jest.fn(); + +beforeEach(() => { + mockICMA.mockReset(); + + // @ts-ignore 2741 + window.PublicKeyCredential = jest.fn().mockReturnValue(() => {}); + window.PublicKeyCredential.isConditionalMediationAvailable = mockICMA + .mockResolvedValue(true); +}); + +test('should return true when conditional mediation is supported', async () => { + const supportsAutofill = await browserSupportsWebAuthnAutofill(); + + expect(supportsAutofill).toEqual(true); +}); + +test('should return false when conditional mediation is not supported', async () => { + mockICMA.mockResolvedValue(false); + + const supportsAutofill = await browserSupportsWebAuthnAutofill(); + + expect(supportsAutofill).toEqual(false); +}); + +test('should return false when browser does not support WebAuthn', async () => { + // This looks weird but it appeases the linter so it's _fiiiine_ + delete (window as { PublicKeyCredential: unknown }).PublicKeyCredential; + const supportsAutofill = await browserSupportsWebAuthnAutofill(); + + expect(supportsAutofill).toEqual(false); +}); |