Files
trezor-suite/packages/utils/tests/arrayToDictionary.test.ts
2022-02-10 11:08:05 +01:00

48 lines
1.5 KiB
TypeScript

import { arrayToDictionary } from '../src/arrayToDictionary';
describe('arrayToDictionary', () => {
it('array with unique keys', () => {
const array = [
{ value: true, name: 'a' },
{ value: true, name: 'b' },
{ value: false, name: 'c' },
{ value: true, name: 'd' },
{ value: false, name: 'e' },
];
const dictionary = arrayToDictionary(array, e => e.name);
expect(dictionary).toStrictEqual({
a: { value: true, name: 'a' },
b: { value: true, name: 'b' },
c: { value: false, name: 'c' },
d: { value: true, name: 'd' },
e: { value: false, name: 'e' },
});
});
it('array with repeating keys', () => {
const array = [
{ value: 1, name: 'a' },
{ value: 2, name: 'b' },
{ value: 3, name: 'c' },
{ value: 4, name: 'b' },
];
const dictionary = arrayToDictionary(array, e => e.name);
expect(dictionary).toStrictEqual({
a: { value: 1, name: 'a' },
b: { value: 4, name: 'b' },
c: { value: 3, name: 'c' },
});
});
it('array with calculated keys', () => {
const array = ['aalpha', 'bbeta', 'ggamma', 'ddelta'];
const dictionary = arrayToDictionary(array, e => e.toUpperCase().slice(1));
expect(dictionary).toStrictEqual({
ALPHA: 'aalpha',
BETA: 'bbeta',
GAMMA: 'ggamma',
DELTA: 'ddelta',
});
});
});