Files
common/packages/util-crypto/src/mnemonic/generate.spec.ts
T
Jaco ab3268407c Use describe.each for onlyJs flag (#1029)
* Use describe.each for onlyJs flag

* base validate checks
2021-06-23 12:55:29 +02:00

38 lines
1.2 KiB
TypeScript

// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { cryptoWaitReady } from '..';
import { mnemonicGenerate, WordCount } from './generate';
import { mnemonicValidate } from './validate';
describe('mnemonicGenerate', (): void => {
beforeEach(async (): Promise<void> => {
await cryptoWaitReady();
});
it('generates a valid mnemonic (default strength)', (): void => {
expect(
mnemonicValidate(mnemonicGenerate())
).toEqual(true);
});
describe.each([false, true])('onlyJs=%p', (onlyJs): void => {
it.each([12, 15, 18, 21, 24] as WordCount[])('generates a valid mnemonic (%p words)', (num): void => {
const mnemonic = mnemonicGenerate(num, onlyJs);
const isValid = mnemonicValidate(mnemonic);
expect(mnemonic.split(' ')).toHaveLength(num);
expect(isValid).toEqual(true);
});
it('generates not deterministic', (): void => {
const m1 = mnemonicGenerate(24, onlyJs);
const m2 = mnemonicGenerate(24, onlyJs);
expect(m1 === m2).toEqual(false);
expect(mnemonicValidate(m1)).toEqual(true);
expect(mnemonicValidate(m2)).toEqual(true);
});
});
});