Merge pull request #1389 from hedgedoc/fix/publicId

This commit is contained in:
David Mehren 2021-07-15 20:37:01 +02:00 committed by GitHub
commit 2dc8fc2b66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 1 deletions

22
src/notes/utils.spec.ts Normal file
View file

@ -0,0 +1,22 @@
/*
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { randomBytes } from 'crypto';
import { generatePublicId } from './utils';
jest.mock('crypto');
it('generatePublicId', () => {
const random128bitBuffer = Buffer.from([
0xe1, 0x75, 0x86, 0xb7, 0xc3, 0xfb, 0x03, 0xa9, 0x26, 0x9f, 0xc9, 0xd6,
0x8c, 0x2d, 0x7b, 0x7b,
]);
const mockRandomBytes = randomBytes as jest.MockedFunction<
typeof randomBytes
>;
mockRandomBytes.mockImplementationOnce((_) => random128bitBuffer);
expect(generatePublicId()).toEqual('w5trddy3zc1tj9mzs7b8rbbvfc');
});

View file

@ -12,6 +12,6 @@ import { randomBytes } from 'crypto';
* This is a randomly generated 128-bit value encoded with base32-encode using the crockford variant and converted to lowercase. * This is a randomly generated 128-bit value encoded with base32-encode using the crockford variant and converted to lowercase.
*/ */
export function generatePublicId(): string { export function generatePublicId(): string {
const randomId = randomBytes(128); const randomId = randomBytes(16);
return base32Encode(randomId, 'Crockford').toLowerCase(); return base32Encode(randomId, 'Crockford').toLowerCase();
} }