diff options
-rw-r--r-- | packages/server/src/assertion/generateAssertionOptions.test.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/packages/server/src/assertion/generateAssertionOptions.test.ts b/packages/server/src/assertion/generateAssertionOptions.test.ts new file mode 100644 index 0000000..54d10f9 --- /dev/null +++ b/packages/server/src/assertion/generateAssertionOptions.test.ts @@ -0,0 +1,45 @@ +import generateAssertionOptions from './generateAssertionOptions'; + +test('should generate credential request options suitable for sending via JSON', () => { + const challenge = 'totallyrandomvalue'; + + const options = generateAssertionOptions( + challenge, + [ + Buffer.from('1234', 'ascii').toString('base64'), + Buffer.from('5678', 'ascii').toString('base64'), + ], + 1, + ); + + expect(options).toEqual({ + publicKey: { + challenge, + allowCredentials: [ + { + id: 'MTIzNA==', + type: 'public-key', + transports: ['usb', 'ble', 'nfc'], + }, + { + id: 'NTY3OA==', + type: 'public-key', + transports: ['usb', 'ble', 'nfc'], + }, + ], + timeout: 1, + }, + }); +}); + +test('defaults to 60 seconds if no timeout is specified', () => { + const options = generateAssertionOptions( + 'totallyrandomvalue', + [ + Buffer.from('1234', 'ascii').toString('base64'), + Buffer.from('5678', 'ascii').toString('base64'), + ], + ); + + expect(options.publicKey.timeout).toEqual(60000); +}); |