@triviality/core
Version:
Purely typed service container
26 lines (24 loc) • 1.07 kB
text/typescript
import { makeImmutableRegistryMap } from '../ImmutableRegistryMap';
describe('Create makeImmutableRegistryMap', () => {
it('empty', () => {
const empty = makeImmutableRegistryMap<number>();
expect(empty.toArray()).toEqual([]);
});
it('With tagged services', () => {
const map = makeImmutableRegistryMap<number>(['tag1', 1], ['tag2', 2]);
expect(map.toArray()).toEqual([['tag1', 1], ['tag2', 2]]);
});
it('Can iterate values', () => {
const map = makeImmutableRegistryMap<number>(['tag1', 1], ['tag2', 2]);
expect([...map]).toEqual([['tag1', 1], ['tag2', 2]]);
});
it('Can add values', () => {
const map = makeImmutableRegistryMap<number>(['tag1', 1], ['tag2', 2]);
expect([...map.register(['tag1', 3], ['tag4', 4])]).toEqual([['tag1', 3], ['tag2', 2], ['tag4', 4]]);
expect(map.toArray()).toEqual([['tag1', 1], ['tag2', 2]]);
});
it('Can convert to plain object', () => {
const map = makeImmutableRegistryMap<number>(['tag1', 1], ['tag2', 2]);
expect(map.toObject()).toEqual({ tag1: 1, tag2: 2 });
});
});